我一直在前端表单上使用精彩的MultiSelectField插件http://addons.silverstripe.org/add-ons/fullscreeninteractive/silverstripe-multiselectfield。
此表单用于编辑已通过其他表单添加的条目。我遇到的问题是,当检索一个数组($ FeedbackCategorySelected)以使用先前的选择填充该字段时,它似乎不接受该参数。例如,如果数组是(1,3),它将只显示1而不是3的记录。
由于此字段正在扩展CheckboxFieldSet,我认为它将以完全相同的方式工作。
任何人都可以了解这里可能出现的问题吗?代码如下。
非常感谢
...
$urlID = $this->request->param('ID');
if(is_numeric($urlID)){
$CallEvent = DataObject::get_by_id("CallEvent", Convert::raw2sql($this->request->param('ID')));
$Feedback = DataObject::get_by_id("Feedback", $CallEvent->FeedbackID);
$FeedbackCategorySelected = $Feedback->FeedbackCategories;
$FeedbackCategory = FeedbackCategoryData::get()->map('ID', 'Title')->toArray();
}
...
$fields = new FieldList(
new MultiSelectField(
'FeedbackCategories',
'Select feedback categories to add or remove',
$FeedbackCategory,
$FeedbackCategorySelected
)
...
答案 0 :(得分:0)
我相信$value
构造函数的第四个参数MultiSelectField
应该是一个数组:
$FeedbackCategorySelected = $Feedback->FeedbackCategories()->map('ID', 'Title')->toArray();