Laravel 5.1中Validator facade与Validate()方法的区别



对于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()方法,是否重定向返回需要输入的错误??

是的,如果规则附加错误失败,使用$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
}

最新更新