我可以在Laravel 5请求验证中对字段组应用相同的规则吗?

时间:2015-02-28 11:37:56

标签: php validation laravel optimization laravel-5

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

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

我可以将这些归档到单一规则吗?

2 个答案:

答案 0 :(得分:0)

你可以在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);
}

答案 1 :(得分:0)

您应该参考文档的自定义验证规则部分,该部分可以准确地解决此问题:http://laravel.com/docs/5.0/validation#custom-validation-rules