我使用Kartik的DetailView和Select2从一个下拉菜单中保存一个多选座席列表。在形式:
<?= $form->field($model, 'attendants')->widget(Select2::classname(), ['data' => $model->attendantList, 'options' => ['placeholder' => Yii::t('app', 'Select...'), 'multiple' => true]]) ?>
在视图:[
'attribute' => 'attendants',
'format' => 'raw',
'type' => DetailView::INPUT_SELECT2,
'widgetOptions' => ['data' => $model->attendantList, 'options' => ['placeholder' => Yii::t('app', 'Select...'),'multiple' => true]],
'value' => call_user_func(function($model){
$attendants = '';
foreach($model->persons as $person) {$attendants .= Html::a($person->name, ['aux-person-event/index', 'person_id' => $person->id]).'<br/>';}
return $attendants;
}, $model),
],
其中$model->attendantList
为数组'id' &"名字"对。
如果我通过更新操作使用标准的ActiveForm,保存的值在更新时正常加载到表单中。然而,当在编辑模式下使用Kartik的DetailView时,它们不是。
什么线索吗?
啊,正如@Jigar7521指出的那样,事实证明,我使用的属性不是在模型中定义的,存在于我的DB中,尽管它是在规则部分中定义的。不错的建议。谢谢。