:Laravel Eloquent - ORMを使用して遠くに関連するモデルにWhere条件を追加する方法私は現在、次のを持っている
Cars::with('cases')->with(['parts', 'parts.engines', 'parts.engines.metals'])
->orderBy('car_name', 'DESC')->orderBy('id', 'DESC');
上記は、これらの車のそれぞれにエンジンに関連付けられている金属と一緒に私のcars
テーブル内のすべての行が一覧表示されます。 metals
テーブルは、テーブルと、parts
テーブルと、engines
テーブルを介して関連付けられています。その最初のパラメータの配列を受け付けませんので、whereHas()
Cars::with('cases')->whereHas(['parts', 'parts.engines', 'parts.engines.metals'], function($query){
$query->where('weight', '=', 45)
})->orderBy('car_name', 'DESC')->orderBy('id', 'DESC');
しかし、このエラーが出て、私はそれと遠い関係にリンクする方法が表示されない:
私が使って試してみました。
組み込みのORMを使用してmetals
テーブルの列にWHERE条件を適用するにはどうすればよいですか?私はあなたがこの意味を考える
熱心なローディングに条件を追加すると、すべての車に熱心に負荷されている金属だけが制限されます。 OPは、whereHas()メソッドを使用する関連金属の条件に基づいて検索される自動車を制限したいと考えています。 – patricus