繁体   English   中英

如果在Laravel 5.3上注册失败,则自定义重定向路径

[英]Custom redirect path if Registration fails on Laravel 5.3

我想在Laravel 5.3 Registration失败时更改重定向路径,它会重定向到上一页,但是我想更改它,但找不到位置。

这是RegisterController

<?php
use RegistersUsers;

protected $redirectTo = '/';

public function __construct()
{
    $this->middleware('guest');
}


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

protected function create(array $data)
{
    return User::create([
        'name' => $data['name'],
        'email' => $data['email'],
        'password' => bcrypt($data['password']),
    ]);
}
?>

这是RegistersUsers特性

<?php
use RedirectsUsers;


public function showRegistrationForm()
{
    return view('auth.register');
}

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

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

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

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

protected function guard()
{
    return Auth::guard();
}

protected function registered(Request $request, $user)
{

}
?>

关于如何实现这一点,是否有任何想法,因为我想在主页上创建一个注册Modal ,并且由于它是一个模态,所以用户直到再次打开注册Modal才看不到错误,因此我想* *失败的注册尝试**总是重定向到/ register。

感谢您的帮助

重写RegisterControllerRedirectsUsers register函数,如下所示。

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

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

    if(empty($user)) { // Failed to register user
        redirect('/register'); // Wherever you want to redirect
    }

    event(new Registered($user));

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

    // Success redirection - which will be attribute `$redirectTo`
    redirect($this->redirectPath());
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM