gpt4 book ai didi

php - 如何在 SilverStripe ModelAdmin 中动态显示/隐藏字段

转载 作者:可可西里 更新时间:2023-11-01 13:19:07 24 4
gpt4 key购买 nike

我在 ModelAdmin 中有一个具有以下字段的数据对象:

class NavGroup extends DataObject {

private static $db = array(
'GroupType' => 'Enum("Standard,NotStandard","Standard")',
'NumberOfBlocks' => 'Int'
);

public function getCMSFields() {
$groupTypeOptions = singleton('NavGroup')->dbObject('GroupType')->enumValues();
$fields = parent::getCMSFields();
$fields->addFieldToTab('Root.Main', new Dropdownfield('GroupType', 'Group Type', $groupTypeOptions));
$fields->addFieldToTab('Root.Main', new Numericfield('NumberOfBlocks', 'Number of Blocks'));
return $fields;
}
}

如果 GroupType == "Standard" 我希望 NumberOfBlocks 字段自动隐藏,以便对用户隐藏。这应该是动态发生的。

此功能在 SilverStripe 中是否可用,或者我是否需要添加一些自定义 JavaScript?

最佳答案

您需要使用 DisplayLogic 模块...

https://github.com/unclecheese/silverstripe-display-logic

那么你的函数可以写成...

public function getCMSFields() {
$fields = parent::getCMSFields();

$fields->addFieldsToTab('Root.Main',array(
Dropdownfield::create('GroupType', 'Group Type', singleton('NavGroup')->dbObject('GroupType')->enumValues())),
Numericfield::create('NumberOfBlocks', 'Number of Blocks')
->displayIf('GroupType')->isEqualTo('Standard')
));

return $fields;
}

关于php - 如何在 SilverStripe ModelAdmin 中动态显示/隐藏字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36297778/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com