可选的OptionsetField是SilverStripe 3.2

时间:2015-11-16 10:03:26

标签: silverstripe

在SilverStripe 3.1。*中我使用了一些可选的OptionsetFields表格,因此不需要做出选择。这很好用。但是自从我更新到SilverStripe 3.2.0之后,表单就不再接受了。提交时,它会附带验证消息,即使我没有在整个表单中使用验证。 见这个截图:

enter image description here

这是该字段的代码:

$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中再次选择此字段?

2 个答案:

答案 0 :(得分:2)

这似乎是3.2中的一个错误,您现在可以使用setEmptyString()告诉OptionsetField它是空的:

$ClassField = OptionsetField::create(
    'Class', 
    _t('General.CLASS', "Class"), 
    array(...)
)
->setEmptyString('none');

答案 1 :(得分:0)

您可能也对silverstripe-display-logic模块感兴趣,它允许您根据某些条件显示某些字段:https://github.com/unclecheese/silverstripe-display-logic