如果在laravel 5.3中验证器失败时如何重定向到一个specefic路由?

时间:2016-12-07 09:11:26

标签: laravel-5.3

我正在尝试从索引页面注册用户但是当验证器失败时,则想要重定向到注册页面。

我厌倦了解决这个问题。无法自定义Illuminate / Foundation / Validation / ValidatesRequests.php页面。

这是代码

protected function getRedirectUrl() {
  return route('register');
}
protected function validator(array $data) {
  $this->getRedirectUrl();
  return Validator::make($data, [ 'name' => 'required|max:255', 'email' => 'required|email|max:255|unique:users', 'password' => 'required|min:6|confirmed', ]);
}

1 个答案:

答案 0 :(得分:1)

添加以下方法,在控制器中生成前一个url并覆盖默认值,在控制器中添加以下方法

在控制器中,您已定义$this->validate调用以下方法并使用请求

use Illuminate\Http\Request; // add at the top

protected function getRedirectUrl() {
  return route('register');
}

protected function validator(array $data) {
  return $this->validate(request(), [ 'name' => 'required|max:255', 'email' => 'required|email|max:255|unique:users', 'password' => 'required|min:6|confirmed', ]);
}

public function register(Request $request)
{
    $this->validator($request->all());

    event(new Registered($user = $this->create($request->all())));

    $this->guard()->login($user);

    return $this->registered($request, $user)
        ?: redirect($this->redirectPath());
}