Вроде бы сделал все правильно, но gridView пишет not set. Хотя в бд есть данный пользователь.
Вот таблица сама с выводом ключа.
Моя реализация
В модели news
public function rules()
{
return [
...
[['status', 'user_id'], 'integer'],
...
[['user_id'], 'exist', 'skipOnError' => true, 'targetClass' => User::className(), 'targetAttribute' => ['user_id' => 'id']],
];
}
/**
* @return \yii\db\ActiveQuery
*/
public function getUser()
{
return $this->hasOne(User::className(), ['id' => 'user_id']);
}
В NewsSearch
public function search($params)
{
$query = News::find()->with('user');
...
}
и gridView
<?= GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => [
...
[
'attribute' => 'user_id',
'label' => 'Автор',
'value' => 'user.username'
],
...
],
]); ?>
Ни email ничего нельзя вывести