我有两个单独的输入:date
和time
。我想使用after
规则验证这两个输入。我该怎么做?以下是目前的规则:
$now = (new DateTime())->format('Y-m-d H:i');
$rules = [
'date' => [
'required',
'date',
"after:$now",
],
'time' => [
'required',
'regex:/^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/',
],
];
目前,验证是忽略时间,当时间设置为无效时,日期将会过去。
答案 0 :(得分:1)
这样的事情怎么样:
class MyRequest extends Request
{
public function rules()
{
$this->normalize();
return ['date_time' => 'required|date|after:now'];
}
public function normalize()
{
$this->merge([
'date_time' => $this->input('date') . ' ' . $this->input('time')
]);
}
}
这里最重要的是调用normalize来构建并向请求添加新的date_time
键值,然后使用您喜欢的任何规则进行验证。