LoginSignup
0
1

More than 5 years have passed since last update.

Validationクラスを使って、簡単に予約フォームをチェック

Last updated at Posted at 2017-12-11

やりたいこと

シンプルな予約フォームを作りたいです。ルールは
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日後のことです。

最後に

意外と簡単にできました。
上記の方法以外にいい方法があったら教えてください。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1