Php Silverstripe不会从DB返回字段
我正在使用SilverStripe(不是我的选择),我正在为最简单的事情挣扎 我创建了一个函数来从表中返回一些数据,该函数适用于除1之外的行中的每个字段,这就是我正在做的:Php Silverstripe不会从DB返回字段,php,silverstripe,Php,Silverstripe,我正在使用SilverStripe(不是我的选择),我正在为最简单的事情挣扎 我创建了一个函数来从表中返回一些数据,该函数适用于除1之外的行中的每个字段,这就是我正在做的: public function LotNumber() { return $this->LotNo; } 我是否遗漏了什么,还有什么需要做的吗?Silverstripe使用了magic\u call()函数。因此,定制的getter和setter可能会遇到一些麻烦(因为它们可能会自己调用自己)。通过选择另一个
public function LotNumber() {
return $this->LotNo;
}
我是否遗漏了什么,还有什么需要做的吗?Silverstripe使用了magic
\u call()
函数。因此,定制的getter
和setter
可能会遇到一些麻烦(因为它们可能会自己调用自己)。通过选择另一个方法名或将其放入getter中,可以轻松避免此问题:
return $this->getField('LotNo');
首先,你必须显示更多的代码
LotNo
是否在某个范围内
要访问db字段LotNo
,您需要定义它的static$db
属性
您必须有:
private static $db = array(
'LotNo' => 'Type'
);
public function LotNumber() {
return $this->LotNo;
}
您可以这样访问:
private static $db = array(
'LotNo' => 'Type'
);
public function LotNumber() {
return $this->LotNo;
}
您的
db
声明是什么样子的?可能因为值为0
,所以没有得到任何回报?这是一个示例,还是一个实函数?这有点不必要,因为$dataobject->LotNumber()的作用与$dataobject->Lotno完全相同。在模板环境中使用它只会返回值,而不是Dbfield对象。在这里如何调用自己是一个问题?对于给定的代码,这不会是一个问题。但是他发布了这个,因为它不起作用。因此,我得出结论,可能有一个函数的名称(或getLotNo
)与他的$db
中的名称相同,因为这会导致错误/注意:未定义属性