在我的控制器中,我有一个store
验证请求数据的方法:
$request->validate([
'title' => 'required',
'description' => 'required',
'date' => [
'required',
new DateFormatRule
],
'closed' => 'nullable',
'time_start' => 'required_if:closed,0',
'time_end' => [
'required_if:closed,0',
new TimeDurationRule($request->time_start)
],
]);
closed
是一个布尔值。如果closed
为 false,则time_start
和time_end
字段是必需的。这似乎按预期工作。
但是,如果我提交一个closed
真实的请求,我就会陷入我的习惯TimeDurationRule
:
'time_end' => [
'required_if:closed,0',
new TimeDurationRule($request->time_start)
],
我怎样才能new TimeDurationRule($request->time_start)
有条件?例如,如果closed
为真,我手动设置time_end
为null
所以time_start
/time_end
不需要值(不需要)。
如果我将我的自定义排除注释掉,一切都会按预期进行。
感谢您的任何建议!