Intereting Posts
Symfony 2, вызывающий несуществующий сервис "router" PHP Найдите 15 или 16-значное число в длинной строке Ассоциативный массив PHP Implode Издевательские модели Laravel Eloquent – как установить публичную собственность с помощью Mockery В PHP, imagepng () принимает параметр фильтра. Как эти фильтры влияют на вывод функции? Выберите значение Distinct для одного поля в Inner Join Query Какой метод предпочтительнее для проверки строки после импорта csv Composer Autoload – Не удается найти класс Как передать аргументы во включенный файл? MASS WHERE / IN, как обрабатывать пустые / возвращенные данные также совпадают? Включение display_errors из внутреннего кода Получение разницы между двумя временем / датами с использованием php? Пользовательская переменная PayPal в электронной почте создание динамической вставки php в функцию mysql? PHP Неопределенный индекс / Неопределенный смещение работает вокруг

Yii2 Html :: dropDownList и Html :: activeDropDownList компромисс

В Yii2, используя Html::activeDropDownList , я могу отправить данные в форме, подобной следующей:

  <?= Html::activeDropDownList($model, 'category', ArrayHelper::map($categories, 'id', 'name'), [ 'multiple' => 'multiple', 'class' => 'multiselect', ]) ?> 

Есть ли способ указать предварительно выбранные категории в приведенном выше? Я знаю, что это можно сделать, используя Html::dropDownLost как Html::dropDownLost ниже:

 <?= Html::dropDownList('category', [1, 3, 5], ArrayHelper::map($categories, 'id', 'name'), [ 'multiple' => 'multiple', 'class' => 'multiselect', ]) ?> 

Но есть компромисс! Нельзя указывать, что это некоторые данные, прикрепленные к определенной модели для отправки, поскольку использовался Html::activeDropDownList .

Одним из решений, которое я нашел, было использование ActiveForm следующим образом:

 <?= $form->field($model, 'category') ->dropDownList('category', [1, 3, 5], ArrayHelper::map($categories, 'id', 'name') ]) ?> 

Проблема с этим последним вариантом заключается в том, что я не могу указать параметры html, такие как «multiple» и css, например «class».

Любая помощь по возможности использовать выпадающий список с возможностью указать, что список будет мультиселективным и иметь предварительно выбранные значения? Также, если кто-то направил меня на ресурс, где я могу прочитать о том, когда и где выбрать activeDropDownList или dropDownList , я был бы очень признателен этому.

Благодаря!

Ответ @scaisEdge правильный, но есть еще один вариант, который вы можете попробовать:

 <?php $model->category = [1,3,5]; //pre-selected values list echo $form->field($model, 'category') ->dropDownList(ArrayHelper::map($categories, 'id', 'name'), [ 'multiple' => 'multiple', 'class' => 'YOUR_CLASS' ] ) ?> 

Этот код также действителен и проверен. Счастливое кодирование 🙂

Я думаю, вы можете попробовать с $ options и атрибутом тега, как предлагается в документе

 <?= Html::dropDownList('category', [1, 3, 5], ArrayHelper::map($categories, 'id', 'name'), [ 'multiple' => 'multiple', 'options' => [ 'value1' => ['disabled' => true, 'class' => 'yourClass', 'style'=> 'yourStyle', .... ], 'value2' => ['label' => 'value 2'], ]; ]) ?>