У меня есть связанные таблицы, но у меня не выходит вывести список, выходит ошибка 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;
}