我已将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')
)
)
));
如何解决此问题?
答案 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;这应该可以解决问题: