У меня есть модель с внешним ключом city_id
эта таблица ссылок Cities (id)
, в GridView
Я показываю название города вместо идентификатора и знаю, как добавить поиск для столбца с внешним ключом, т.е.
GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => [
//some columns
[
'attribute' => 'city_id',
'value'=>'city.title
],
]);
И в поисковой модели (search()
функция) я добавляю:
$query->joinWith('city');
$query->andFilterWhere(['like', 'cities.title', $this->city_id]);
И это прекрасно работает. Но я тоже хочу показать region
в моей сетке, и мой стол Cities
имеет внешний ключ region_id
какие ссылки Regions(id)
,
Я добавил название региона в сетку:
GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => [
//some columns
[
'attribute' => 'city_id',
'value'=>'city.title
],
'city.region.title_en',
]);
Теперь я не знаю, как добавить поиск и как изменить search()
функция, потому что у меня нет region_id
в моей основной модели, я получаю его через city
,
Буду признателен за любые советы.
не забудьте добавить region_id
к вашей поисковой модели.
Других решений пока нет …