車のテーブルがあります。私の車両の検索ページでは、モデル、色などを選択して車両をフィルタリングします。Laravel 5のテーブルに複数のフィルタを適用する
私のコードでは、車両モデルをインスタンス化しようとしました。その後、フィルタを適用し、get()を使用してクエリを実行しようとしましたが、エラーが表示されました。ここ
コード:私は直接、自動車のような車両モデルにwhereHasを使用する場合:: whereHasをここで
$vehicles = Vehicle::all();
if($request->input('model'))
{
$vehicles->whereHas('model', function($q)
{
$q->where('model_name', '=', 'CL');
});
}
if($request->input('color'))
{
$vehicles->where('color', '=', 'red');
}
// other filters here
$result = $vehicles->get();
dd($result);
単一のフィルタが動作します()。条件に基づいて複数のフィルタを適用しなければならない場合の解決策は何ですか。 誰が私の日を救うのですか?
モデル名はwherehasを使用してフィルタリングできるモデルテーブルにありますが、車両テーブルに色があります。入力がある場合は、これらをベースにして適用する必要があります。到着する入力に基づいて複数のwhereHasが適用されることもあります。 –
@mirzavu親テーブルで 'where'フィルタリングをさらにサポートし、関連テーブルで' whereHas'を許可するように更新しました。 – Ohgodwhy
クエリは今働きました。私はそれを機能させるためにコレクションの編集を提案しました!編集を承認してください、これはansとしてマークします。ありがとうございます –