在SilverStripe 3.1。*中,我使用了一些可选的OptionsetFields表格,因此不需要做出选择。这很好用。但是,自从我更新到SilverStripe 3.2.0后,表格不再接受这一点。提交时,它会附带验证消息,即使我没有在整个表单中使用验证。看这个截图:
这是该领域的代码:
$ClassField = OptionsetField::create('Class', _t('General.CLASS', "Class"), array(
"S" => "S",
"E" => "E",
"U" => "U",
"R" => "R",
"O" => "O",
"P" => "P"
));
有没有想过在SilverStripe 3.2.0中再次选择此字段?
这似乎是3.2中的一个错误,你现在告诉OptionsetField它可以使用setEmptyString()为空:
$ClassField = OptionsetField::create(
'Class',
_t('General.CLASS', "Class"),
array(...)
)
->setEmptyString('none');
您可能也对silverstripe-display-logic模块感兴趣,它允许您根据某些条件显示某些字段:https://github.com/unclecheese/silverstripe-display-logic