Php 两个字段的Validation Lavel:第一个是datepicker,第二个是select

Php 两个字段的Validation Lavel:第一个是datepicker,第二个是select,php,laravel,validation,Php,Laravel,Validation,我的表单上有许多字段。 其中两个必须绑在一起 第一个是日期选择器,第二个是选择字段(填入所选日期的函数) ---选择时间--- 10时00分 ... 所以我想这样做: 如果未选择日期,则这两个字段为可选字段 如果选择了日期,则选择字段是必需的,且不等于0(0是选项的第一个值,我将其用作标签) 我做了很多关于required_if,required_的测试,除非没有成功 返回[ 'name'=>'required', “first_name”=>“required”, ... “所需天数”

我的表单上有许多字段。 其中两个必须绑在一起

第一个是日期选择器,第二个是选择字段(填入所选日期的函数)


---选择时间---
10时00分
...
所以我想这样做:

  • 如果未选择日期,则这两个字段为可选字段
  • 如果选择了日期,则选择字段是必需的,且不等于0(0是选项的第一个值,我将其用作标签)
我做了很多关于required_if,required_的测试,除非没有成功

返回[
'name'=>'required',
“first_name”=>“required”,
...
“所需天数”=>“可为空”,
'hour_id'=>'nullable'
];

非常感谢

如果和必须(除非检查将为另一个字段的值查找特定条件)必须(如果和必须)。这不是你需要的

您可以将
required\u与
一起使用:

'day_desired' =>'nullable',
'hour_id' =>'required_with:day_desired|nullable|min:1'

hour\u id
必须为
null
的原因是,您不希望在所需的
day\u
hour\u id
为空时运行
min:1
检查。尽管如此,
required\u with
规则仍将失败,即使该字段可为空,如中所述。此版本中添加了此行为:。

好的,谢谢您的解释,但不幸的是,它不起作用。如果我选择了一个日期,然后我尝试发送我的表单,那么第二个字段hour_id就不会出现错误。这就是它的工作原理,如果我不填写这两个字段,就不会出现错误,所以它是好的。奇怪的是,这种行为是在Laravel 5.4中添加的。您可能正在使用较旧的版本吗?不,不,我的项目在Laravel 5.5下,我忘了将
day\u desired
添加到
required\u with
-->
required\u with:day\u desired
。你能试试这个@yasgrasdemonde(见更新的答案)吗。?然后验证器将失败。是的,我看到了这种遗忘,我立即通过添加day_desired to required_来纠正它。而且没有像我在第一次评论中说的那样工作。我的选择字段的值0似乎是个问题,不是吗?