【发布时间】:2020-06-28 09:25:31
【问题描述】:
检查了这个question 类似但对我的情况没有帮助。
我的输入请求转储是
array:2 [▼
"_token" => "nYb7gSp5TGTcrU9nNW9PMjJTduohLZFDLCzLGPbq"
"timings" => array:8 [▼
"day_1" => array:1 [▼
0 => "1"
]
"day_2" => array:1 [▼
0 => "1"
]
"day_3" => array:1 [▼
0 => "1"
]
"day_4" => array:1 [▼
0 => "1"
]
"day_5" => array:1 [▼
0 => "1"
]
"day_6" => array:1 [▼
0 => "1"
]
"day_7" => array:1 [▼
0 => "1"
]
"session" => array:1 [▼
0 => array:2 [▼
"start" => array:2 [▼
0 => "14:00 PM"
1 => null
]
"end" => array:2 [▼
0 => "15:00 PM"
1 => null
]
]
]
]
]
到目前为止我所做的是
$rules = [
'timings.session.*.start.*' => 'nullable|date_format:H:i|before:timings.session.*.end.*',
'timings.session.*.end.*' => 'nullable|date_format:H:i|after:timings.session.*.start.*',
];
$messages = [
'timings.session.*.start.*.before' => 'Start Time should be before End Time',
'timings.session.*.end.*.after' => 'End Time should be after Start Time',
];
$validator = Validator::make($request->all(), $rules, $messages);
dd($validator->errors());
仍然收到错误的错误信息是
Illuminate\Support\MessageBag {#780 ▼
#messages: array:2 [▼
"timings.session.0.start.0" => array:2 [▼
0 => "The timings.session.0.start.0 does not match the format H:i."
1 => "Start Time should be before End Time"
]
"timings.session.0.end.0" => array:2 [▼
0 => "The timings.session.0.end.0 does not match the format H:i."
1 => "End Time should be after Start Time"
]
]
#format: ":message"
}
问题:
a.) 如何为时间输入设置正确的验证规则,以确保开始时间不应大于结束时间?
b.) 如何设置另一个验证规则以匹配至少一个复选框被选中以进行日期选择?
谢谢,希望对其他人也有帮助。
【问题讨论】:
-
也尝试使用“H:i A”
标签: laravel validation time laravel-6 laravel-validation