【发布时间】:2014-12-01 13:11:07
【问题描述】:
早上好,
我一直在尝试使用 removeByName 方法,但它不起作用。 我基本上是想在由管理对象的 ModelAdmin 生成的表单中隐藏我的 DataObject 中的一个字段。
参见下面的示例代码:
///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
注意:我没有收到任何错误。我仍然像往常一样看到表单上的字段(添加和编辑)。
任何帮助表示赞赏,谢谢。
【问题讨论】:
-
您是否尝试过以不同的方式命名该字段,例如“TemplateTest”?
-
不,我一开始没有。我刚刚试了一下,还是不行。它仍然以标题“模板测试”的形式显示。不过,感谢您的努力,任何其他想法都非常受欢迎。
-
如果有人可以告诉/告诉我如何调试函数“getCMSField”,例如对 $fields 变量执行 var_dump 也会很有帮助。谢谢。我试过: Debug::show($fields) [不工作] 即使附加了 url 查询字符串 [?debug=1&isDev=1]。我什至尝试过 die(var_dump($fields)),但我什么也没得到。
标签: field silverstripe data-objects