やりたいこと
シンプルな予約フォームを作りたいです。ルールは
1.利用開始日は登録当日よりですので、過去日付を指定できません。
2.利用可能なのは利用開始日より15日間です。
バリデータの生成
public function store(Request $request)
{
$rule = [
'start_at' => 'required|after_or_equal:today',
'finish_at' => ['required', 'after:start_at'],
];
// 利用開始日
$strat_at = $request->get('start_at');
$start_at = Carbon::parse($strat_at);
// 利用終了日
$finish_at = $start_at->addDay(15)->format('Y-m-d');
$rule['finish_at'][] = "before:{$finish_at}";
$validator = Validator::make($request->all(), $rule);
if ($validator->fails()) {
return redirect('post/create')
->withErrors($validator)
->withInput();
}
// 保存処理…
}
ポイント
1.after
は指定した日付より後のことです。(指定した日含まない)
2.after_or_equa
は指定した日付以降のことです。(指定した日含む)
3.before
は指定された日付より前のことです。(指定した日含まない)
4.$start_at->addDay(15)
は15日後のことです。
最後に
意外と簡単にできました。
上記の方法以外にいい方法があったら教えてください。