【发布时间】:2020-03-19 21:34:01
【问题描述】:
在我的控制器中,我有一个 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 为假,则time_start 和time_end 字段是必需的。这似乎按预期工作。
但是,如果我以 closed 为 true 提交请求,我就会陷入我的自定义 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 不需要值(不是必需的)。
如果我将自定义排除注释掉,一切都会按预期进行。
感谢您的任何建议!
【问题讨论】:
标签: php laravel web-frameworks laravel-validation laravel-7