@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 пикселам.
@wilburn
Для создания собственного выпадающего списка (dropdownlist) в Yii2, вы можете использовать виджет DropDownList
или непосредственно генерировать HTML-код записей <select>
и <option>
. Ниже приведен пример кода создания собственного выпадающего списка без использования виджета:
1 2 3 4 5 |
<select name="my-dropdown"> <option value="value1">Label 1</option> <option value="value2">Label 2</option> <!-- Добавьте столько <option> записей, сколько вам нужно --> </select> |
В приведенном HTML-коде <select name="my-dropdown">
создает выпадающий список с именем my-dropdown
. <option value="value1">Label 1</option>
и <option value="value2">Label 2</option>
представляют собой элементы списка с значениями value1
и value2
, и текстами Label 1
и Label 2
соответственно.
Если вам нужно использовать созданный выпадающий список в форме Yii2, то следует поместить его в представлении внутри тега ActiveForm:
1 2 3 4 5 6 7 8 |
<?= Html::beginForm('', 'post', ['class' => 'form-horizontal']); ?> <?= Html::dropDownList('my-dropdown', null, [ 'value1' => 'Label 1', 'value2' => 'Label 2', ], ['prompt' => 'Выберите значение...']); ?> <?= Html::endForm(); ?> |
Здесь Html::dropDownList()
является методом для создания выпадающего списка в Yii2. Аргументы метода - имя списка (my-dropdown
), выбранное значение (null), массив элементов для списка ($items
), и опции списка (['prompt' => 'Выберите значение...']).
Оба примера выше позволят вам создать собственный выпадающий список в Yii2 без необходимости использования виджета.