PHP 7.1.29
Laravel Framework 5.5.48
Laravelにて以下の検索を行う。
・お届け先氏名
┗自由入力で部分一致
・注文日
┗開始日・終了日を選択して、その期間内の注文を検索
開始日のみ入力されている場合:開始日以降の注文を全て表示
終了日のみ入力されている場合:終了日以前の注文を全て表示としてください
※注文日、お届け先の氏名の複合条件でも検索されるように実装する。
public function search(Request $request)
{
// 検索機能
$query = $this->purchase->query();
// 名前検索
if (!empty($request->name)) {
$query->where('full_name', 'like', "%{$request->name}%")->get();
}
// 日付検索(開始日)
if (!empty($request->start_date)) {
$query->where('created_at', '>=', $request->start_date)->get();
}
// 日付検索(終了日)
if (!empty($request->end_date)) {
$query->where('created_at', '<=', $request->end_date)->get();
}
$purchases = $query->get();
return view('admin.purchase.index', compact('purchases', 'request'));
}
queryを使用することで
必要な検索のみを追加してDBよりデータを取得する。