@Monitorkin

Как добавить data-attribute каждому элементу выпадающего списка DropDownList (Yii2)?

Спрашиваю потому, что не нашел нигде нормального рабочего примера..
Есть выпадающий список DropDownList:
Из модели ObjectType нужно использовать 'object_type' и 'type_attr'.
<?= $form->field($model, 'type')->dropDownList(ArrayHelper::map(ObjectType::find()->all(), 'object_type', 'object_type'),
		[  'prompt' => 'Выберите тип объекта..',
		   'options' =>[ ??? ]
		]
); ?>


Что нужно добавить в 'options' чтобы получилось так:
<select>
<option value="type1" data-attribute="type_attr1">type1</option>
     ...
<option value="type2" data-attribute="type_attr2">type2</option>
</select>
  • Вопрос задан
  • 662 просмотра
Решения вопроса 1
В доке все есть. Примерно так.
<?php 
    $attrs = ArrayHelper::map(ObjectType::find()->all(), 'object_type', 
        function($t){
            return ['data-attribute' => $t['type_attr']];
        });
?>
<?= $form->field($model, 'type')->dropDownList(ArrayHelper::map(ObjectType::find()->all(), 'object_type', 'object_type'),
    [  
       'prompt' => 'Выберите тип объекта..',
       'options' => $attrs;
    ]
); ?>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы