0
所以我使用的是多輸入加載卡爾蒂克的選擇二小部件卡爾蒂克的的DetailView:Yii2:卡爾蒂克的的DetailView和選擇二裝載的ID而不是文本
[
'attribute' => 'characters',
'format' => 'raw',
'type' => DetailView::INPUT_SELECT2,
'value' => function($form, $widget) {
<my_stuff_in_VIEW_mode>
},
'widgetOptions' => [
'options' => ['multiple' => true, 'placeholder' => Yii::t('app', 'Select...')],
'pluginOptions' => [
'allowClear' => true,
'minimumInputLength' => 3,
'maximumInputLength' => 20,
'language' => Yii::$app->language,
'ajax' => [
'url' => \yii\helpers\Url::to(['myAjaxServer']),
'dataType' => 'json',
'delay' => 250,
'data' => new JsExpression('function(params) { return {q:params.term, p:params.page}; }'),
'cache' => true,
],
'escapeMarkup' => new JsExpression("function (markup) { return markup; }"),
'templateResult' => new JsExpression("function (characters) { return '<b>' + characters.text + '</b>'; }"),
'templateSelection' => new JsExpression("function (characters) { return characters.text; }"),
],
],
],
當談到卡爾蒂克的的DetailView,VIEW模式正確地顯示我的人物列表通過value
給出,但進入編輯模式,當我得到這個:
這顯然不是我所期待的:我希望我的角色的名字,而不是它們的ID。但是,如果我從這個相同的輸入下拉列表中選擇新的字符,則會添加新的標籤以正確顯示新名稱(因此更新數據時會發生此問題)。在確認新數據並嘗試更新後,再次顯示新字符及其ID。
JSON數據如下:
{"results":[{"id":"8","text":"Character8"},{"id":"5","text":"Character5"}],"pagination":{"more":true}}
任何想法?
與Solution更新人卡爾蒂克下圖:
添加initValueText
如期望的屬性值的數組:
'initValueText' => ArrayHelper::getColumn($model->characters, 'name'),
非常感謝Kartik。剛剛添加:''initValueText'=> ArrayHelper :: getColumn($ model-> characters,'name')' –