2016-06-30 76 views
2

我使用SilverStripe(不是我的選擇),我用最簡單的事情掙扎......Silverstripe慣於返回字段從DB

我創建了一個函數從表中返回一些數據時,功能行中適用於各個領域除了1,這是我在做什麼:

public function LotNumber() { 
    return $this->LotNo; 
} 

我失去的東西,有沒有別的東西,我需要做什麼?

+1

請問你'db'聲明是什麼樣子?也許你沒有得到任何回報,因爲值是'0'? – bummzack

+0

這是一個例子,還是這是一個真正的功能?這是有點不必要的,因爲$ dataobject-> LotNumber()將與$ dataobject-> Lotno完全相同。在模板環境中使用它只會返回值而不是Dbfield對象。 – jberculo

回答

2

銀線紋使用魔術__call()功能。因此,自定義getterssetters可能會有點麻煩(因爲他們可能會自稱)。您可以輕鬆地選擇其他方法名避免這種情況,或者把這個在您的getter:

return $this->getField('LotNo'); 
+0

如何稱自己是一個問題? – jberculo

+0

用給出的代碼,它不會是一個問題。但他發佈這個,因爲它不起作用。所以我得出結論:可能會有一個名字相同的函數(或者'getLotNo')和他的'$ db'中的一樣,因爲這會給出錯誤/注意:'Undefined property' –

0

首先必須表現出更多的代碼!

請問LotNo在某些範圍內?

要訪問db字段LotNo,請將其定義爲靜態$db屬性。

您必須:

private static $db = array(
    'LotNo' => 'Type' 
); 

比你可以像這樣訪問:

public function LotNumber() { 
    return $this->LotNo; 
}