Для отображения значения из связанной таблицы в GridView в Yii2, вы можете использовать конфигурацию модели и виджета.
Предположим, у вас есть две таблицы: post
и author
, связанные между собой по полю author_id
. Вам нужно отобразить имя автора в GridView на основе его author_id
.
1) Настройте связь между моделями Post
и Author
в методе relations()
модели Post
:
public function relations() { return [ 'author' => [self::BELONGS_TO, 'Author', 'author_id'], ]; }
2) В представлении GridView определите колонку, в которой будет отображаться имя автора:
GridView::widget([ 'dataProvider' => $dataProvider, 'columns' => [ // ... другие колонки [ 'attribute' => 'author_id', 'value' => 'author.name', // отображает имя автора ], ], ]);
В этом примере мы использовали связь author
, определенную в методе relations()
модели Post
, и получили свойство name
модели Author
в колонке.
Теперь, когда в GridView будет отображаться список постов, вместо author_id
будет отображаться имя автора из связанной таблицы.
Обратите внимание, что связь между таблицами должна быть настроена правильно и данные в таблице author
должны соответствовать значениям в таблице post
.