开始日期后的 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')->where(function($query) use ($request) $query->where('pitch_id', 'LIKE','%'.$request->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 验证结束日期不起作用的主要内容,如果未能解决你的问题,请参考以下文章