Как создать свой dropdownlist в yii2?

Пользователь

от wilburn , в категории: PHP , год назад

Как создать свой dropdownlist в yii2?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от brenna , год назад

@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 пикселам.