GreyCrew
@GreyCrew
Full-stack developer

Как спроектировать массив для active form с множественным выбором?

Есть модель, которая содержит следующие данные: номер площадки(id), стоимость с оборудованием(value), стоимость без оборудования(w_e_value) и идентификатор пользователя, за которым закреплена площадка(user_id).
Нужно каким то образом (предпочтительно) через active form реализовать вывод площадок на выборку.

Вроде реализовал вывод, но выбор возможен только одной площадки.
Как правильно сформировать массив, чтобы была возможность выбора нескольких площадок одновременно?
170eef55ec274557b2eeed5c4d4688cf.JPG
<? foreach ($standsModel as $stand):  
 $items[$stand->stand] = ['Площадь - '.$stand->area_space.' кв.м. Стоимость - '.$stand->value_equipped_playground.'р. Стоимость без оборудованния - '.$stand->value_not_equipped_playground.'р.'];
        endforeach; 
        $params = [
            'prompt' => 'Выберите стенд',
            'multiple' => 'true'
        ];
        echo $form->field($model, 'number_area_stand')->dropDownList($items, $params);
        ?>
  • Вопрос задан
  • 215 просмотров
Решения вопроса 1
qonand
@qonand
Software Engineer
$form->field($model, 'number_area_stand')->dropDownList($items, ['multiple' => true]);

позволит выбирать несколько записей (с зажатой клавишей Ctrl). Не стоит так же забывать что если Вы в форме позволяете делать выбор множества значений для атрибута number_area_stand, он должен быть в модели массивом.
А вообще если стоит задача множественного выбора я бы порекомендовал не использовать стандартный dropDownList. Вместо него лучше использовать специализированные виджеты, например Select2. Это позволит сделать более удобным для пользователя ресурс
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Вроде так
echo $form->field($model, 'number_area_stand[]')->dropDownList($items, $params);
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы