Для создания выпадающего списка городов в Yii2 вам понадобится использовать элемент управления ActiveForm и модель данных. Вот подробная инструкция по созданию такого списка.
Шаг 1: Создание модели данных
Сначала создайте модель данных для городов, где будут храниться все доступные города.
class City extends yiidbActiveRecord { public static function tableName() { return 'city'; // здесь указываем имя таблицы, в которой хранятся города } // здесь добавляем все необходимые атрибуты модели public function rules() { return [ [['name'], 'string', 'max' => 255], // здесь могут быть другие правила валидации ]; } }
Шаг 2: Создание элемента управления в форме
Создайте форму и добавьте в нее элемент управления для выбора города.
// в представлении, где будет отображаться форма use yiihelpersArrayHelper; use yiiwidgetsActiveForm; $form = ActiveForm::begin(); $cityList = ArrayHelper::map(City::find()->all(), 'id', 'name'); echo $form->field($model, 'city_id')->dropDownList($cityList, ['prompt' => 'Выберите город']); ActiveForm::end();
Шаг 3: Обработка выбора города
В вашем контроллере нужно добавить логику для обработки выбранного города.
public function actionIndex() { $model = new CityForm(); // здесь CityForm - это модель данных для формы if ($model->load(Yii::$app->request->post()) && $model->validate()) { // здесь вы можете делать, что вам нужно, с выбранным городом $selectedCityId = $model->city_id; $selectedCityName = City::findOne($selectedCityId)->name; // выполнение необходимых действий return $this->refresh(); } return $this->render('index', [ 'model' => $model, ]); }
Теперь у вас должен быть работающий выпадающий список городов в Yii2. Вы можете создать модель данных для городов и предоставить пользователю выбор из списка, а затем использовать выбранный город для дальнейших действий.