在Laravel中注册后重定向

问题描述 投票:5回答:5

我正在使用Laravel 5。

我想在注册成功后重定向用户。我在我的authcontroller中尝试了这些,但它不起作用。

protected $loginPath = '/plan';
protected $redirectTo = '/plan';
protected $redirectAfterRegister = 'plan/';

这些工作成功登录,但注册后没有。

我也尝试过postRegister渲染视图,但使用postRegister方法会覆盖注册过程,我不想这样做。我只想将用户重定向到成功注册的页面。

php laravel registration
5个回答
5
投票

覆盖你提到的postRegister函数应该可行,你可以在你的AuthController中执行此操作:

 public function postRegister(Request $request)
 {
    $validator = $this->registrar->validator($request->all());
    if ($validator->fails())
    {
        $this->throwValidationException(
            $request, $validator
        );
    }
    $this->auth->login($this->registrar->create($request->all()));     
    // Now you can redirect!
    return redirect('/plan');
 }

或类似的东西。从你在AuthenticatesAndRegistersUsers顶部使用的AuthController复制它,在这里你会发现所有的功能

为此,你的AuthController应该使用'AuthenticatesAndRegistersUsers'特性,默认情况下是这样。

有关重定向的更多信息,以防您想要重定向到命名路由:http://laravel.com/docs/5.0/responses#redirects


2
投票

只需将以下行添加到Auth / AuthController.php中的AuthController类

protected $redirectPath= '/plan';

上面的重定向路径将用于成功登录和成功注册。


1
投票

您还可以在RegisterUsers.php中修改register()的返回值:

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

    if ($validator->fails()) {
        $this->throwValidationException(
            $request, $validator
        );
    }

    Auth::guard($this->getGuard())->login($this->create($request->all()));
    // Originally the parameter is $this->redirectPath()
    return redirect()->to('/plans');
}

1
投票

这是laravel 5.4解决方案

     /**
     * The user has been registered.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  mixed  $user
     * @return mixed
     */
    protected function registered(Request $request, $user)
    {

          //User register now here you can run any code you want 
          if (\Request::ajax()){

            return response()->json([
                'auth' => auth()->check(),
                'intended' => $this->redirectPath(),
            ]);
            exit();
        }
        return redirect($this->redirectPath());
    }

请记住register()处理申请的注册申请。用户创建时registered()调用的地方。


0
投票

运行命令后

php artisan make:auth

laravel创建auth控制器和资源文件,用于更改注册用户的路径,只需转到下面的路径即可

App\Http\Controllers\Auth\RegisterController

并更改protected $redirectTo param,您可以在LoginControllerRegisterController中以这种方式用户在登录后进行重定向

© www.soinside.com 2019 - 2024. All rights reserved.