Yii2:Kartik 的 DetailView 和 Select2 不加载保存的值
Yii2: Kartik's DetailView & Select2 not loading saved values
我使用 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' 和 'name' 对的数组。
如果我通过更新操作使用标准 ActiveForm,保存的值会在更新时正常加载到表单中。但是,当在编辑模式下使用 Kartik 的 DetailView 时,它们不是。
有线索吗?
啊,正如@Jigar7521 所指出的,事实证明我使用的是模型中未定义的属性,尽管它已在规则部分中定义,但它存在于我的数据库中。不错的提示。谢谢。
我使用 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' 和 'name' 对的数组。
如果我通过更新操作使用标准 ActiveForm,保存的值会在更新时正常加载到表单中。但是,当在编辑模式下使用 Kartik 的 DetailView 时,它们不是。
有线索吗?
啊,正如@Jigar7521 所指出的,事实证明我使用的是模型中未定义的属性,尽管它已在规则部分中定义,但它存在于我的数据库中。不错的提示。谢谢。