我使用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'和&amp;的数组。 '名字'对。
如果我通过更新操作使用标准ActiveForm,则保存的值会在更新时正常加载到表单中。但是在编辑模式下使用Kartik的DetailView时却不是这样。
有任何线索吗?
答案 0 :(得分:0)
啊,正如@ Jigar7521指出的那样,虽然它是在规则部分中定义的,但我在我的数据库中使用了未在模型中定义的属性作为existant。不错的提示。感谢。