雄辩,基于"的条件属于"关系

时间:2014-05-31 13:47:18

标签: laravel where eloquent belongs-to

假设我有以下型号:

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

现在我想使用基于director表中的列的where条件来获取电影。

有没有办法实现这个目标?找不到任何基于属于关系的条件的文档。

1 个答案:

答案 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');
}