我有一個查詢範圍方法,可以根據模型的作者過濾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