Laravel,验证后捕捉错误
Laravel 5.1我有以下代码:Laravel,验证后捕捉错误,laravel,laravel-5,Laravel,Laravel 5,Laravel 5.1我有以下代码: $validator = Validator::make($request->all(), [ 'name' => 'required|max:255', 'file' => 'required|max:2000', ]); if ($validator->fails()) { // do something depending the error before returning and redirect
$validator = Validator::make($request->all(), [
'name' => 'required|max:255',
'file' => 'required|max:2000',
]);
if ($validator->fails()) {
// do something depending the error before returning and redirect
if (name not present) {
my code for this
}
if (file larger than 2000) {
my code for this
}
return redirect()
->back()
->withErrors($validator)
->withInput();
}
因此,如果名称不存在,我需要运行一些代码,如果文件大于2000,则需要另一个,以此类推
我怎样才能知道哪条规则失败了呢?其实很简单。与$errors全局传递到前端并使方法具有相同的方式,您可以在重定向之前检查控制器中的错误:
$validator = Validator::make($request->all(), [
'name' => 'required|max:255',
'file' => 'required|max:2000',
]);
if ($validator->fails()) {
// do something depending the error before returning and redirect
if($validator->errors()->has('name')){
// Do whatever for `name` issue.
}
if($validator->errors()->has('file')){
// Do whatever for `file` issue.
}
return back()
->withErrors($validator)
->withInput(); // Don't need `redirect()->back()`, `back()` is enough.
}
注意,这将捕获必需规则和最大规则。要检查单个规则,可以将failed方法与isset结合使用:
其实很简单。与$errors全局传递到前端并使方法具有相同的方式,您可以在重定向之前检查控制器中的错误:
$validator = Validator::make($request->all(), [
'name' => 'required|max:255',
'file' => 'required|max:2000',
]);
if ($validator->fails()) {
// do something depending the error before returning and redirect
if($validator->errors()->has('name')){
// Do whatever for `name` issue.
}
if($validator->errors()->has('file')){
// Do whatever for `file` issue.
}
return back()
->withErrors($validator)
->withInput(); // Don't need `redirect()->back()`, `back()` is enough.
}
注意,这将捕获必需规则和最大规则。要检查单个规则,可以将failed方法与isset结合使用:
就像一个符咒。我在读这篇文章:试图像施咒一样使用这种方法。我在读这篇文章:尝试使用那种方法