【问题标题】:after_or_equal validation does not work in laravel 5.2after_or_equal 验证在 laravel 5.2 中不起作用
【发布时间】:2018-07-09 18:29:03
【问题描述】:

我想比较 start_date 和 end_date , 并且 end_date 应该等于或大于 start_date, 我正在使用 after_or_equal 验证。

return Validator::make($data, [
      'start_date' => 'required',
      'end_date' => 'required|date_format:Y-m-d|after_or_equal:start_date'
]);


after_or_create validation of laravel5.2 return error like this.
Method [validateAfterOrEqual] does not exist.

【问题讨论】:

  • 你的 laravel 版本是什么
  • 您需要将您的版本升级到 5.4 才能使用 after_or_equal
  • 感谢重播,我无法更新我的版本,所以如何在不升级版本的情况下解决我的问题?
  • 尝试编写您的自定义验证。参考这个链接stackoverflow.com/questions/27018045/…

标签: php laravel-5


【解决方案1】:

您需要将您的版本升级到 5.4 才能使用after_or_equal

https://laravel.com/docs/5.4/validation#rule-after-or-equal

注意:after_or_equal 可从版本laravel 5.3 获得

【讨论】:

    【解决方案2】:

    Validator::extend('before_equal', function($attribute, $value, $parameters, $validator) { return strtotime($validator->getData()[$parameters[0]]) >= strtotime($价值); }); 或者替代方案是升级到 5.3

    【讨论】:

      【解决方案3】:

      只需将您的日期提前 1 天发回并使用 after: 规则!

      $yesterday = date('Y-m-d', strtotime('-1 days');
      
      $rule = ['start_date' => 'required|after:'.$yesterday];
      

      只要有 after: 或 before: 规则,这将适用于所有版本的 laravel。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-04-05
        • 2016-05-14
        • 1970-01-01
        • 1970-01-01
        • 2016-04-28
        • 2016-07-07
        • 1970-01-01
        相关资源
        最近更新 更多