早上好,
我一直在尝试使用 removeByName 方法,但它不起作用。我基本上是在尝试在管理对象的模型管理员生成的表单中隐藏数据对象中的一个字段。
请参阅下面的示例代码:
///DataObject snippet...
class MyObject extends DataObject{
public static $db = array(
'Title' => 'Varchar',
'Desc' => 'Text',
'Template' => 'HTMLText',
);
//@Override
public function getCMSField(){
$fields = parent::getCMSField();
$fields->removeByName('Template'); /// DOESN'T WORK!!!
return $fields;
}
}//class
注意:我没有收到任何错误。我只是像往常一样仍然看到表单上的字段(添加和编辑(。
任何帮助表示赞赏,谢谢。
好的,我发现了问题。
我只是第一百万次再次检查 API,并意识到我命名了错误的函数。请参阅下面的更正:
///Correction, forgot to add the 's' at the end of both the function and the parent call.
public function getCMSFields(){
$fields = parent::getCMSFields();
}
我可以理解该函数的 Apache 日志中未生成的错误,因为它是合法的。但至于父调用,它应该生成错误,因为该方法不存在。(理论:也许,由于函数从未实际被调用,因此父调用没有被执行,因此没有错误[运行时错误](。