1
Iデータベース内のテーブルの列の一部を検索するために使用する検索ボックスがあります。ここにコードがありますLaravelのネストされたクエリ5.2
$project = Project::findOrFail($id);
$file = \App\File::find($file);
$query = $request->input('q');
$materials = $query
?\App\Material::where('file_id', '=', $file->id)
->where('material_name', 'LIKE', "%$query%")->get()
:\App\Material::where('file_id', '=', $file->id)->get();
return view('projects.file',compact('project', 'file', 'materials'));
このページの読み込み時にデータがフィルタリングされ、このプロジェクトの項目だけが表示されます。しかし、検索が完了すると、テーブル全体が検索されます。どのようにして、特定のプロジェクトのアイテムだけを検索し、テーブルのアイテム全体を検索することはできませんか?
これが問題の一部を解決します。すべての場合(検索ボックスからの入力の有無にかかわらず)、テーブル内の$ fileの値を検索したいのですが、入力があれば、$ fileと "%$ search_item%"をテーブル –
これはこれを正確に解決しています。 $ファイルがある場合は、ファイルがあるかどうかを検索し、入力がある場合はプロジェクトのプロジェクト検索がある場合は入力を検索してください! –
説明を追加しました。コードにはELSEはありませんので、すべてANDです。 –