可选的OptionsetField在SilverStripe 3.2中不起作用

时间:2015-11-28 09:00:17

标签: silverstripe

我已将SilverStripe从3.1版升级到3.2版。自升级以来,event calendar module已停止工作,并显示以下错误:

  

请在提供的列表中选择一个值。不是有效选项

此错误适用于OptionsetField变量上的CustomRecursionType,但这不是必填字段。

这是字段的代码:

$f->addFieldsToTab("Root.$recursion", array(
    new CheckboxField('Recursion',_t('CalendarEvent.REPEATEVENT','Repeat this event')),            
    new OptionsetField(
        'CustomRecursionType',
        _t('CalendarEvent.DESCRIBEINTERVAL','Describe the interval at which this event recurs.'),
        array (
            '1' => _t('CalendarEvent.DAILY','Daily'),
            '2' => _t('CalendarEvent.WEEKLY','Weekly'),
            '3' => _t('CalendarEvent.MONTHLY','Monthly')
        )

    )

));

如何解决此问题?

2 个答案:

答案 0 :(得分:1)

此时SilverStripe Event Calendar module在SilverStripe 3.2上不起作用。它仍然为SilverStripe 3.1编程。有一些事情需要更新才能使其适用于SilverStripe 3.2。

其中一个主要问题是SilverStripe 3.2中似乎存在OptionsetField is always a required field的错误。现在的解决方案是在每个setEmptyString上调用OptionsetField

我目前正在对模块进行一些更新,以使其适用于SilverStripe 3.1和3.2。完成后,我将提交拉取请求以供模块所有者审核。

答案 1 :(得分:-1)

在同一个类中,从必需的fields数组中删除Recursion;这应该可以解决问题: