Laravel验证器:: make vs this-> validate()

时间:2016-08-10 13:03:41

标签: laravel

我的控制器中有一个验证器可以正常工作(见下文)。

$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教程系列。

1 个答案:

答案 0 :(得分:11)

如果您使用$validator = Validator::make(...,则必须检查验证是否失败或通过if ($validator->fails()) {...并手动从控制器返回响应。因此,如果您想在某处重定向,在渲染视图之前执行某些操作,在从方法返回响应之前对错误执行某些操作或执行任何其他操作,这将非常有用。

所有控制器都可以使用的 validate()方法将根据您提供的数据和规则自动检查验证是否失败。如果验证失败,则会抛出 ValidationException ,并自动处理该请求,并且请求会重定向并返回验证错误。因此,如果您有标准验证并且只想验证并在视图中显示错误,这将非常有用。