我有一个查询范围方法,可以根据模型的作者过滤Foo模型的结果。并发症是作者不直接相关。在Laravel查询范围内查询相关模型
Foo属于Bar和Bar属于User。如果富属于用户,我可以做到这一点:
public function scopeAuthorOnly($query, User $user)
{
return $query->whereuser_id($user->id);
}
这显然为富模型没有user_id列,而是具有bar_id列将无法正常工作。不过,我不知道如何以过滤user_id的方式构建查询。
任何指针?
我已经发布了Laravel路的答案,也请您检查。 – Arda
这比哪里更好,因为它使用表索引并且工作效率更高,但是不要忘记添加 - > select(“users。*”),否则laravel可以给你“id”或者其他任何来自错误表的字段,并且不会错误将被抛出。 –
如果你坚持使用MySQL,这会更好。其他引擎可能会导致此类查询出错。 OP从未提及他使用的是哪个数据库引擎。 – Arda