私は、モデルの作成者がFooモデルの結果をフィルタリングするクエリスコープメソッドを持っています。合併症は、著者が直接関連していないということです。Laravelクエリスコープ内の関連モデルのクエリ
FooはBarに属し、BarはUserに属します。 fooはユーザーに属している場合、私はこれを行うことができます:Fooのモデルは何のuser_idの列を持っていないし、代わりにbar_id列を持っているよう
public function scopeAuthorOnly($query, User $user)
{
return $query->whereuser_id($user->id);
}
をこれは明らかに動作しません。しかし、私はuser_idをフィルタリングする方法でどのようにクエリをビルドすることができないのか分かりません。
任意のポインタ?
、またそれを確認してください。 – Arda
これは、テーブルインデックスを使用してより効率的に作業するため、より良いですが、 - > select( "users。*")を追加することを忘れないでください。そうでなければlaravelは "id"または間違ったテーブルの他のフィールドを与えることができます。エラーがスローされます。 –
これは、MySQLに悩まされている方が良いでしょう。他のエンジンでは、このようなクエリでエラーが発生することがあります。 OPは彼がどのDBエンジンを使用しているかは一度も言及しなかった – Arda