【问题标题】:Validation Laravel of 2 fields : first is datepicker and second is select2个字段的验证Laravel:第一个是日期选择器,第二个是选择
【发布时间】:2019-08-09 18:29:22
【问题描述】:

我的表单上有很多字段。 其中 2 个必须绑定在一起。

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

<input class="form-control pull-right" name="day_desired" id="day_desired" placeholder="Day Desired" type="text" value="{{ old('day_desired') }}">
<select id="hour_id" name="hour_id" class="form-control">
   <option value="0">--- Choose hour ---</option>
   <option value="10:00">10h00</option>
   ...
</select>

所以我想这样做:

  • 如果没有选择日期,这两个字段是可选的。
  • 如果选择了日期,则选择字段为必填项且不等于 0(0 是选项的第一个值,我将其用作标签)。

我用 required_if 进行了许多测试,required_unless 没有成功....

return [
            'name'=>'required',
            'first_name' =>'required',
            ...

            'day_desired' =>'nullable',
            'hour_id' =>'nullable'
        ];

非常感谢

【问题讨论】:

    标签: php laravel validation


    【解决方案1】:

    required_ifrequired_unless 检查将寻找另一个字段值的特定条件。这不是你在这里需要的。

    你可以使用required_with:

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

    hour_id 必须为nullable 的原因是您不希望在day_desiredhour_id 为空时运行min:1 检查。尽管如此,required_with 规则还是会失败,即使该字段可以为空,正如this post on GitHub 中所指出的那样。此版本中添加了此行为:https://github.com/laravel/framework/releases/tag/v5.4.16

    【讨论】:

    • 好的,谢谢您的解释,但不幸的是,它不起作用。如果我选择了一个日期,然后我尝试发送我的表单,则第二个字段 hour_id 不会出现错误。这就是它的工作原理,如果我不填写这两个字段,就不会发生错误,所以很好。
    • 奇怪,这种行为是在 Laravel 5.4 中添加的。您可能使用的是旧版本吗?
    • 不不,我的项目在 Laravel 5.5 下
    • 我忘记将day_desired 添加到required_with --> required_with:day_desired。你能试试这个@yasgrasdemonde(见更新的答案)。?那么验证器就会失败。
    • 是的,我已经看到了这种健忘,我立即通过将 day_desired 添加到 required_with 来纠正它。并没有像我在第一条评论中所说的那样工作。看来我的选择字段的值 0 会有问题,不是吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-19
    • 1970-01-01
    • 2019-07-25
    • 2018-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多