假设我有以下型号:
class Movie extends Eloquent
{
public function director()
{
return $this->belongsTo('Director');
}
}
现在我想使用基于director表中的列的where条件来获取电影。
有没有办法实现这个目标?找不到任何基于属于关系的条件的文档。
答案 0 :(得分:36)
您可以尝试此操作(在Laravel
网站上查看Querying Relations):
$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');
}