我有两个表Songs(属于App \ Host)和Hosts(hasMany App \ Song)。我的歌曲表有一个attempts
列,而我的主机表有一个skip_threshold
。我想查询所有未达到其相关主机的跳过阈值的歌曲。
我怎样才能做到这一点?
我已经尝试过这样的事情:
return $songs = Song::whereIn('host_id', $available_hosts)
->where('attempts', '<', $songs->host->skip_threshold)->get();
我试图利用口才关系查询,但是从测试中我发现这是行不通的。我想尝试并使用Eloquent做到这一点,这样我就可以利用渴望在刀片模板中加载相关数据的优势。
最佳答案
你可以试试
$songs = Song::whereHas('host', function($query) {
$query->where('skip_threshold', '>', DB::raw('songs.attempts'));
})->get();
关于php - Eloquent 地在WHERE子句中引用外键数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36507506/