【问题标题】:How to validate a date with RequiredIf validation laravel如何使用 RequiredIf 验证 laravel 验证日期
【发布时间】:2020-10-24 19:25:28
【问题描述】:

我在一个表单中有两个输入日期,一个是 start_date,另一个是 end_date,我正在尝试验证是否需要 end_date,如果 start_date 已经输入。

我做了那部分,但现在我不能添加其他检查,因为它不能正常工作。如果我使用 "date_format: Y-m-d",则该字段始终为必填项。

如果我想使用 "after_or_equal:",那么如果 start_date 为空,则该字段总是返回错误。

return [
        "start_date" => "nullable|date_format:Y-m-d",
        "end_date" => new RequiredIf($this->start_date !== NULL).'|date_format:Y-m-d|after_or_equal:start_date',
    ];

这是我的验证器,如果我删除 "date_format""after_or_equal" 的验证,它可以工作,但我需要验证所有这些数据

【问题讨论】:

    标签: laravel request


    【解决方案1】:

    您必须先使用可空规则,然后使用 required_with 和其余规则。

    $this->validate($request, array(
        'start_date' => "nullable|date_format:Y-m-d",
        'end_date' => 'nullable|required_with:start_date|date_format:Y-m-d|after_or_equal:start_date',
    ));
    

    【讨论】:

      【解决方案2】:

      试试下面的方法会解决你的问题

      return [
              "start_date" => "nullable|date_format:Y-m-d",
              "end_date" => "required_if:start_date,after_or_equal:start_date|nullable|date_format:Y-m-d",
          ];
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-05-21
        • 1970-01-01
        • 2018-10-21
        • 1970-01-01
        • 2017-09-11
        • 2022-10-31
        • 2022-01-24
        相关资源
        最近更新 更多