我的控制器中有一个验证器可以正常工作(见下文)。
$this->validate($request,[
'name' => 'required|alpha',
'sport' => 'required|alpha',
'gender' => 'required|alpha',
'age' => 'required|numeric',
'score' => 'required|numeric',
]);
当我看到我的观点时,我就跑了:
@if(count($errors) > 0)
<div>
<ul>
@foreach($errors->all() as $error)
{{ $error }}
@endforeach
</ul>
</div>
@endif
Laravel文档使用Validator::make($request...)
哪一个在良好实践和性能方面更好?我使用的方法来自Laravel 5 Youtube教程系列。
答案 0 :(得分:11)
如果您使用$validator = Validator::make(...
,则必须检查验证是否失败或通过if ($validator->fails()) {...
并手动从控制器返回响应。因此,如果您想在某处重定向,在渲染视图之前执行某些操作,在从方法返回响应之前对错误执行某些操作或执行任何其他操作,这将非常有用。
所有控制器都可以使用的 validate()方法将根据您提供的数据和规则自动检查验证是否失败。如果验证失败,则会抛出 ValidationException ,并自动处理该请求,并且请求会重定向并返回验证错误。因此,如果您有标准验证并且只想验证并在视图中显示错误,这将非常有用。