【问题标题】:Optional OptionsetField is SilverStripe 3.2可选的 OptionsetField 是 SilverStripe 3.2
【发布时间】:2015-11-16 10:03:25
【问题描述】:

在 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 中再次将此字段设为可选?

【问题讨论】:

    标签: silverstripe


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-03-26
        • 2016-03-25
        • 1970-01-01
        • 2014-01-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多