Disons que j'ai le modèle suivant:
class Movie extends Eloquent
{
public function director()
{
return $this->belongsTo('Director');
}
}
Maintenant, je voudrais récupérer des films en utilisant une condition where basée sur une colonne de la table des réalisateurs.
Existe-t-il un moyen d'y parvenir? Impossible de trouver de la documentation sur les conditions basées sur une relation d'appartenance à.
Vous pouvez essayer ceci (Check Querying Relations on Laravel
website):
$movies = Movie::whereHas('director', function($q) {
$q->where('name', 'great');
})->get();
Aussi, si vous inversez la requête comme:
$directorsWithMovies = Director::with('movies')->where('name', 'great')->get();
// Access the movies collection
$movies = $directorsWithMovies->movies;
Pour cela, vous devez déclarer une relation hasmany
dans votre modèle Director
:
public function movies()
{
return $this->hasMany('Movie');
}