我可以对 Laravel5 请求验证中的字段组应用相同的规则吗?
Can I appy same rule for group of fields in Laravel5 request validation?
我正在使用 laravel 请求表单验证,我想对多个应用相同的规则 field.Is 是否可以通过任何简单的方式?或者需要单独编写代码。
我的验证规则如下。
protected $rules = [
'phone' => ['max:11'],
'work_phone' => ['max:11'],
'mobile' => ['max:11'],
];
我可以将这些文件分组到一个规则中吗?
您可以在 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);
}
您应该参考文档的 自定义验证规则 部分,它恰好解决了这个问题:http://laravel.com/docs/5.0/validation#custom-validation-rules
我正在使用 laravel 请求表单验证,我想对多个应用相同的规则 field.Is 是否可以通过任何简单的方式?或者需要单独编写代码。 我的验证规则如下。
protected $rules = [
'phone' => ['max:11'],
'work_phone' => ['max:11'],
'mobile' => ['max:11'],
];
我可以将这些文件分组到一个规则中吗?
您可以在 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);
}
您应该参考文档的 自定义验证规则 部分,它恰好解决了这个问题:http://laravel.com/docs/5.0/validation#custom-validation-rules