0
我有兩個模型,App \ Song(belongsTo App \ Host)和App \ Host(hasMany App \ Song)。爲什麼雄辯搜索Active =?
在我的控制,我使用下面的查詢:
$songs = Song::whereHas('host', function($query) {
$query->eligable()->activeHost();
})->inDownloadedQueue()->get();
這是從下面的查詢範圍派生在我Song.php
模型 公共職能scopeEligable($查詢)
{
$query->where('skip_threshold', '>', \DB::raw('songs.attempts'));
}
public function scopeActiveHost($query)
{
$query->where('active', 1);
}
public function scopeInDownloadQueue($query)
{
$query->whereNull('downloaded');
}
這並未沒有任何結果返回,轉向->toSql()
函數進行調試,查詢如下:
select * from "songs" where exists (select * from "hosts" where "songs"."host_id" = "hosts"."id" and "skip_threshold" > songs.attempts and "active" = ?) and "downloaded" is null
這個host = ?
似乎是問題所在。任何想法,爲什麼這是?
感謝您對PDO查詢的解釋,這是數據問題。 – Imran