Подтвердить что ты не робот

Красноречивый, когда условие, основанное на отношении "принадлежит"

Скажем, у меня есть следующая модель:

class Movie extends Eloquent
{
    public function director()
    {
        return $this->belongsTo('Director');
    }
}

Теперь я хотел бы получить фильмы, используя условие where, основанное на столбце из таблицы директоров.

Есть ли способ достичь этого? Не удалось найти документацию на условиях, основанных на отношении, принадлежащем отношению.

4b9b3361

Ответ 1

Вы можете попробовать это (отметьте Запрос отношений на веб-сайте Laravel):

$movies = Movie::whereHas('director', function($q) {
    $q->where('name', 'great');
})->get();

Также, если вы отмените запрос следующим образом:

$directorsWithMovies = Director::with('movies')->where('name', 'great')->get();
// Access the movies collection
$movies = $directorsWithMovies->movies;

Для этого вам нужно объявить отношение hasmany в вашей модели Director:

public function movies()
{
    return $this->hasMany('Movie');
}