Моей модель Book
Laravel - ограничить на нетерпеливых загруженных belongsTo отношениях
public function author()
{
return $this->belongsTo('Author');
}
Я хочу, чтобы все книги, которые имеют автор, у которых есть столбец is_published == 1.
Так что я попытался это:
Book::with(['author' => function($query){
$query->where('is_published', '=', '1');
}]);
Это работает, но на самом деле я получаю только книги, в которых некоторые книги имеют прикрепленную модель автора, а некоторые нет!
Итак, я попытался это:
Book::with(['author' => function($query){
$query->where('is_published', '=', '1');
}])->has('author');
Но я получаю эту ошибку:
Has method invalid on "belongsTo" relations
Как я могу быть уверен, что мое ограничение на внешнюю таблицу уменьшает свой окончательный набор данных без нужно ли проходить через мои данные и проверять существование автора? Благодарю.
это не работает, потому что author_id никогда не является нулевым. У нас всегда есть author_id. – phirschybar