@rusline

Как исправить ошибку?

У меня есть связанные таблицы, но у меня не выходит вывести список, выходит ошибка Invalid argument supplied for foreach()
в файле frontend\views\signup
<?= $form->field($model, 'region')->dropDownList(
                    $region->region_id,
                    [
                    'prompt'=> 'Выберите регион',
                    'onchange'=>'
                        $.post("index.php?r=site/city&id='.'"+$(this).val(), function(data){
                            $("select#signupform-city").html(data);
                        });'
                    ]); ?>

                <?= $form->field($model, 'city')->dropDownList(
                    ArrayHelper::map(City::find()->all(), 'city_id', 'name'),
                    [
                    'prompt'=>'Выберите город',
                    ], ['disabled'=>false]); ?>

В siteController
public function actionRegion()
    {
        $region = Region::getRegion();
        foreach ($region as $regionList) {
            echo "<option value = '".$regionList->region_id."'>".$regionList->name."</option>";
        }
    }

    public function actionCity($id)
    {
       $region = City::find()->where(['region_id'=>$id])->count();
       $cityList = City::find()->where(['region_id'=>$id])->all();

       if ($region>0) {
           foreach ($cityList as $city) {
               echo "<option value = '".$city->city_id."'>".$city->name."</option>";
           }
       } echo "<option>-</option>";
    }

В модели таблице frontend\models\Region
public static function getRegion()
    {
    	$region = self::find()
    		->where(['country_id'=>3159])
    		->all();
    		return $region;
    }
  • Вопрос задан
  • 143 просмотра
Решения вопроса 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
У Вас все как не надо. Вот:
<?php $my_array = ArrayHelper::map(Region::find()->andWhere(['country_id'=>3159])->all(),'id','title'); ?>
<?= $form->field($model, 'region')->dropDownList(
                    $my_array,
                    [
                    'prompt'=> 'Выберите регион',
                    'onchange'=>'
                        $.post("index.php?r=site/city&id='.'"+$(this).val(), function(data){
                            $("select#signupform-city").html(data);
                        });'
                    ]); ?>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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