SilverStripe MultiSelectField选中了数组

时间:2016-02-03 08:39:06

标签: php content-management-system multi-select silverstripe

我一直在前端表单上使用精彩的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
)
...

1 个答案:

答案 0 :(得分:0)

我相信$value构造函数的第四个参数MultiSelectField应该是一个数组:

$FeedbackCategorySelected = $Feedback->FeedbackCategories()->map('ID', 'Title')->toArray();