【问题标题】:Can I appy same rule for group of fields in Laravel5 request validation?我可以对 Laravel 5 请求验证中的字段组应用相同的规则吗?
【发布时间】:2015-05-01 02:53:44
【问题描述】:

我正在使用 laravel 请求表单验证,并且我想对多个字段应用相同的规则。是否有可能以任何简单的方式?或者需要单独编写代码。 下面给出了我的验证规则。

  protected $rules = [
    'phone' => ['max:11'],
    'work_phone' => ['max:11'],
    'mobile' => ['max:11'],
];

我可以将这些文件分组到单个规则中吗?

【问题讨论】:

  • 您究竟是如何使用这些规则的?据我所知,您应该有一个 rules() 方法返回它们。我可以再看看你的代码吗?
  • laravel.com/docs/5.0/validation#form-request-validation 我正在使用表单请求验证。它在 laravel 5 中,但不在旧版本中。

标签: php validation laravel optimization laravel-5


【解决方案1】:

你可以在rules()方法里面做一些事情:

public function rules(){
    $phoneRules = ['max:11'];
    return [
        'phone' => $phoneRules,
        'work_phone' => $phoneRules,
        'mobile' => $phoneRules
    ]
}

或者:

public function rules(){
    $fields = ['phone', 'work_phone', 'mobile'];
    return array_fill_keys($fields, ['max:11']);
}

如果您有其他属性要使用其他规则进行验证,您需要这样的东西:

public function rules(){
    $fields = ['phone', 'work_phone', 'mobile'];
    $phoneRules = array_fill_keys($fields, ['max:11']);
    $otherRules = [
        'foo' => 'required',
        'bar' => 'min:30'
    ]
    return array_merge($phoneRules, $otherRules);
}

【讨论】:

    【解决方案2】:

    您应该参考文档的自定义验证规则部分,该部分正好解决了这个问题:http://laravel.com/docs/5.0/validation#custom-validation-rules

    【讨论】:

      猜你喜欢
      • 2017-02-06
      • 2017-12-04
      • 1970-01-01
      • 2023-03-30
      • 1970-01-01
      • 2018-11-18
      • 2015-12-24
      • 2021-10-30
      • 2020-07-17
      相关资源
      最近更新 更多