Мне нужно сделать поиск по связанным моделям.
Связь в модели поставлена:
Код: Выделить всё
public function getAuthor()
{
return $this->hasOne('app\models\User', ['id' => 'created_by']);
}
Код: Выделить всё
[['author'], 'safe']
Код: Выделить всё
<?php echo GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
'id',
[
'attribute' => 'author',
'value' => function($data) { return $data->author->name; },
],
['class' => 'yii\grid\ActionColumn'],
],
]); ?>
Код: Выделить всё
$this->addCondition($query, 'id');
$query->with=['author'];
return $dataProvider;
Что например не правильно в таком запросе, если он не может найти поле 'author.id' ? Post::find()->with('author')->andWhere(['author.id'=>1])->one();