验证器外观与Laravel 5.1中的Validate()方法之间的区别

时间:2015-10-11 04:42:59

标签: laravel laravel-5.1

对于Laravel 5.1,我们知道我们可以通过这种方式进行验证:

使用validate()方法验证

$this->validate( $request, $rules);

使用Validator Facade验证

$validator = Validator::make($request->all(), $rules);
if($validator->fails()) {
  return redirect()->back()
    ->withInput($request->except('password'))
    ->withErrors($validator);
}

如果我使用validate()方法??

,是否需要输入错误重定向

1 个答案:

答案 0 :(得分:2)

是的,如果规则未能附加错误,则使用$this->validate( $request, $rules)可以重定向请求。另一方面,使用Validator::可以实现手动重定向。

我建议您使用Form Request class以保持代码清晰且可重复使用。

class SignInRequest extends Request {

    public function authorize()
    {
        return true;
    }

    public function rules()
    {
        return [
            'email' => array('required'),
        ];
    }
}

因此,在您的控制器中,您可以:

function validateSignIn(SignInRequest $request){
    // do stuff here if rules are ok
}