首页 > 解决方案 > 开始日期后的 Laravel 验证结束日期不起作用

问题描述

我正在尝试验证结束日期必须在开始日期之后,但如果我将结束日期放在开始日期之前,它会通过而不显示错误消息,这是我的代码

我的观点

<input id="start_date" type="datetime-local" class="form-control   @error('start_date') is-invalid @enderror" name="start_date"  required autocomplete="start_date" autofocus>

我的控制器

$this -> validate($request ,[

            'start_date' => [ Rule::unique('reservations')->where(function($query) use ($request) {
                $query->where('pitch_id', 'LIKE','%'.$request->pitch_id.'%');
              })],
              'end_date'=> 'required,datetime,before:start_date',
            ]);

标签: phplaravellaravel-5eloquentlaravel-validation

解决方案


使用after而不是before.

$this -> validate($request ,[

            'start_date' => [ Rule::unique('reservations')->where(function($query) use ($request) {
                $query->where('pitch_id', 'LIKE','%'.$request->pitch_id.'%');
              })],
              'end_date'=> 'required,datetime,after:start_date',
            ]);

推荐阅读