关系的雄辩查询范围

时间:2016-04-09 02:30:48

标签: php laravel eloquent

我有两个型号,App \ Song(belongsTo App \ Host)和App \ Host(hasMany App \ Song)。

我的控制器中有以下查询:

$songs = Song::whereHas('host', function($query) {
                $query->where('skip_threshold', '>', \DB::raw('songs.attempts'))
                      ->where('active', 1);
            })
->whereNull('downloaded')
->get();

为了可重用性,我想转变为查询范围。

我对Eloquent很陌生,所以我不确定这是否正确,因为它的两个模型没有返回任何结果(应该存在)。

Song.php

public function scopeEligable($query)
{
    $query->where('skip_threshold', '>', \DB::raw('songs.attempts'));
}

public function scopeActiveHost($query)
{
    $query->where('active', 1);
}

public function scopeInDownloadQueue($query)
{
    $query->whereNull('downloaded');
}

0 个答案:

没有答案