@wilburn
Для создания списка выбора (dropdownlist) в Yii2 следует использовать виджет DropDownList
. Этот виджет генерирует HTML-код для выпадающего списка, который можно настроить с помощью массива опций.
Например, чтобы создать список выбора на основе модели, следует использовать следующий код:
1 2 3 4 |
<?= $form->field($model, 'attribute')->dropDownList( $items, // массив элементов для списка ['prompt' => ''] // опции списка, например, пустой элемент ) ?> |
Здесь $model
– это модель, а attribute
– имя атрибута модели, который будет использоваться для хранения выбранного значения.
$items
– это массив элементов для списка, который можно определить самостоятельно или получить из базы данных. Он должен иметь следующий формат:
1 2 3 4 5 |
$items = [ 'value1' => 'Label 1', 'value2' => 'Label 2', ... ]; |
Здесь ключи – это значения элементов списка, которые будут сохраняться в атрибуте модели, а значения – это подписи элементов, которые будут отображаться в списке.
Опции можно передать в виде массива вторым параметром метода dropDownList()
, например, чтобы добавить пустой элемент в начало списка, используйте опцию prompt
:
1
|
['prompt' => 'Выберите значение...'] |
Также можно использовать другие опции, например, options
и clientOptions
, чтобы настроить внешний вид списка и поведение виджета на клиентской стороне.
1 2 3 4 5 6 7 8 |
<?= $form->field($model, 'attribute')->dropDownList( $items, [ 'prompt' => 'Выберите значение...', 'options' => ['value1' => ['disabled' => true]], 'clientOptions' => ['width' => '200px'], ] ) ?> |
Этот код создаст список выбора на основе модели $model
и атрибута attribute
, который будет содержать элементы с ключами value1
, value2
и т.д. В начале списка будет добавлен пустой элемент с надписью "Выберите значение...". Этот элемент будет отображаться в поле формы, если ни один элемент списка не выбран. Для элемента с ключом value1
будет задано свойство disabled
, чтобы его нельзя было выбрать. На клиентской стороне ширина списка будет равна 200 пикселам.