开始日期后的 Laravel 验证结束日期不起作用

Posted

技术标签:

【中文标题】开始日期后的 Laravel 验证结束日期不起作用【英文标题】:Laravel validation enddate after start date not working 【发布时间】:2020-10-02 13:13:15 【问题描述】:

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

我的看法

<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',
            ]);

【问题讨论】:

这能回答你的问题吗? Laravel 5.3 date validator: equal to or after start_date 试过了,但没有 输出是什么? dd(Rule::unique('reservations')-&gt;where(function($query) use ($request) $query-&gt;where('pitch_id', 'LIKE','%'.$request-&gt;pitch_id.'%'))... ??? 成功了,是语法错误 【参考方案1】:

使用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',
            ]);

【讨论】:

` 'end_date'=> ['required','date','after_or_equal:start_date'],` 试过了,但还是不行【参考方案2】:
'start_date' => [ Rule::unique('reservations')->where(function($query) use ($request) 
    $query->where('pitch_id', 'LIKE','%'.$request->pitch_id.'%');
  )],
  'end_date'=> ['required','date','after:start_date'],

]);

现在可以了 但是没有显示错误信息

<div class="col-md-5">
              <input type="datetime-local" class="form-control " name="end_date"  id="end_date" required>
              @error('end_date')
              <span class="invalid-feedback " role="alert">
                  <strong> $message </strong>
              </span>
          @enderror


             </div>

我的习惯

'custom' => [

        'end_date' => [
            'after:start_date' => 'la date de fin doit etre apres la date du debut',
        ],
    ],

【讨论】:

以上是关于开始日期后的 Laravel 验证结束日期不起作用的主要内容,如果未能解决你的问题,请参考以下文章

气流回填不起作用

Laravel - 在编辑视图上添加日期验证

laravel 5.1 中的日期验证

按较早日期验证两个日期时间本地字段?

Laravel 5.4 有时验证规则不起作用

Laravel 混合问题:日期选择器不起作用