【发布时间】:2015-01-15 14:01:01
【问题描述】:
我正在开发 SilverStripe 3.1.8 网站。我有一个定义一些字段的 DataExtension,我正在尝试使用 Display Logic 来修改 CMS 的行为:
private static $db = array(
'Enabled' => 'Boolean',
'Title' => 'Text'
);
private static $has_one = array(
'Link' => 'SiteTree',
'Image' => 'Image'
);
/* this is a DataExtension */
public function updateCMSFields(FieldList $fields) {
$fields->addFieldsToTab('Root.Other', array(
CheckboxField::create('Enabled'),
TextField::create('Title', "Title")->displayIf('Enabled')->isChecked()->end(),
TreeDropdownField::create("LinkID", "Linked page", 'SiteTree')->displayIf('Enabled')->isChecked()->end(),
UploadField::create('Image', "Image")->displayIf('Enabled')->isChecked()->end()
));
}
当我选中或取消选中“启用”复选框时,其他三个字段应该相应地出现或消失。不幸的是,只有 TextField 会显示,TreeDropdownField 和 UploadField 总是显示出来。
任何想法为什么显示逻辑在这两种字段类型上失败,以及如何解决它? 谢谢!
【问题讨论】:
-
你知道你用的是哪个版本的显示逻辑模块吗?
-
嗨,Cam,我正在使用来自 github.com/unclecheese/silverstripe-display-logic 的 master 分支的最新提交。此外,升级到 SilverStrip 3.1.9 后问题仍然存在
-
你可以尝试使用 1.0.8 的显示逻辑github.com/unclecheese/silverstripe-display-logic/releases/tag/… 看看那里会发生什么。您是否使用 composer 对依赖项进行排序?
标签: silverstripe