2016-02-03 63 views
2

我一直在前端表單上使用美妙的MultiSelectField插件http://addons.silverstripe.org/add-ons/fullscreeninteractive/silverstripe-multiselectfieldSilverStripe MultiSelectField selected array

此表單用於編輯已通過其他表格添加的條目。我遇到的問題是,當檢索一個數組($ 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

我相信第四參數,$value,該MultiSelectField構造函數應該是一個數組:

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