【发布时间】:2019-08-08 12:27:22
【问题描述】:
是否有可能将FormRequest 规则设置为默认使用bail 规则而不输入它?
代替:
class StoreRequest extends FormRequest {
function rules() {
return [
'name' => 'bail|required|min:3',
'last_name' => 'bail|required|min:3',
'names' => 'bail|required|min:3',
'email' => 'bail|required|email',
'type' => 'integer|min:10|max:50',
// [...]
];
}
}
我想要更干净的版本,比如:
class StoreRequest extends FormRequest {
protected $stopsOnFirstError = true; // I can't find anything like this
function rules() {
return [
'name' => 'required|min:3',
'last_name' => 'required|min:3',
'names' => 'required|min:3',
'email' => 'required|email',
'type' => 'integer|min:10|max:50',
// [...]
];
}
}
更新:
我的一些规则被定义为数组:
'type' => [
'bail',
'required',
'integer',
Rule::in(ContactType::getValues()),
],
【问题讨论】:
-
我认为这需要覆盖现有的验证器函数。
-
bail已经隐含在required规则中,因此没有必要。但是bail无法阻止其他字段验证它只会停止它正在验证的一个字段上的其他验证规则。 -
这就是我试图实现的目标 - 在第一次失败时停止其他验证。我也没有必填字段,但在存在时进行了验证:`bail|integer|min:10'。
标签: laravel validation laravel-5 laravel-validation