SilverStripe和显示逻辑因某些字段类型而失败
我正在SilverStripe 3.1.8网站上工作。我有一个DataExtension,它定义了一些字段,我试图使用显示逻辑来修改CMS的行为:SilverStripe和显示逻辑因某些字段类型而失败,silverstripe,Silverstripe,我正在SilverStripe 3.1.8网站上工作。我有一个DataExtension,它定义了一些字段,我试图使用显示逻辑来修改CMS的行为: private static $db = array( 'Enabled' => 'Boolean', 'Title' => 'Text' ); private static $has_one = array( 'Link' => 'SiteTree', 'Image' => 'Image' )
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始终显示
您知道为什么显示逻辑在这两种字段类型中失败,以及如何解决它吗?
谢谢大家! 似乎UploadField和DropdownField属于的类别,您需要将它们包装在DisplayLogicWrapper中 请参阅addFieldsToTab输入数组的最后两行
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(),
DisplayLogicWrapper::create(TreeDropdownField::create("LinkID", "Linked page", 'SiteTree'))->displayIf('Enabled')->isChecked()->end(),
DisplayLogicWrapper::create(UploadField::create('Image', "Image"))->displayIf('Enabled')->isChecked()->end()
));
}
您知道您使用的是哪个版本的显示逻辑模块吗?嗨,Cam,我使用的是来自主分支的最新提交。此外,升级到SilverStrip 3.1.9后,问题仍然存在。您是否可以尝试使用1.0.8的显示逻辑查看那里发生了什么。您是否使用composer对依赖项进行排序?另外,我还发现我必须使用该模块的主开发版本。稳定版本不工作。嗨,Atari,我现在无法检查,但我尝试了DisplayLogicWrapper。这不起作用,唯一的区别是DisplayLogicWrapper使分隔表单中字段的可视水平线消失。我会尽快用master dev和1.0.8版(以上由Cam推荐)进行测试。是的,它改变了CSS样式,但我现在的版本使用UploadField可以工作-希望它能为您工作-正如我所说,使用master dev版本,不稳定-周末快乐!a、 )