Yii2 динамически создаваемые выпадающие списки через foreach?

В Yii2 можно легко создавать динамические выпадающие списки с помощью цикла foreach. В этом ответе я расскажу подробно о том, как это сделать.

1. Подготовка данных.
Сначала вам нужно подготовить данные, которые будут использоваться для создания выпадающего списка. Предположим, у вас есть массив данных, который вы хотите отобразить в выпадающем списке:

   $data = [
       '1' => 'Вариант 1',
       '2' => 'Вариант 2',
       '3' => 'Вариант 3',
       // ...
   ];

2. Вывод выпадающего списка.
Затем вы можете использовать цикл foreach для генерации HTML-кода выпадающего списка. В Yii2 есть встроенный вспомогательный класс Html, который делает это легко:

   use yiihelpersHtml;
   
   echo Html::dropDownList('my-dropdown', null, $data, ['prompt' => 'Выберите вариант...']);

В этом примере:
- 'my-dropdown' - имя элемента управления. Оно будет использоваться как атрибут name в HTML-элементе <select>.
- null - значением по умолчанию для выпадающего списка. Если вы не хотите задавать значение по умолчанию, установите null.
- $data - массив данных, которые будут отображаться в выпадающем списке.
- ['prompt' => 'Выберите вариант...'] - атрибуты элемента управления. В этом примере используется атрибут prompt, который добавляет псевдоэлемент "Выберите вариант..." в начале списка, чтобы помочь пользователям выбрать вариант.

3. Обработка выбранного значения.
Когда пользователь выбирает опцию из выпадающего списка и отправляет форму, вы можете получить выбранное значение в вашем контроллере или модели:

   $selectedValue = Yii::$app->request->post('my-dropdown');

В этом примере 'my-dropdown' - это имя элемента управления, которое мы задали в пункте 2 выше.

Это всего лишь пример использования цикла foreach для создания выпадающего списка в Yii2. Вы можете настроить это более подробно, добавив дополнительные атрибуты или стили, если это необходимо.