在Laravel中注册后如何将用户重定向到上一个URL

daugaard47

使用Laravel 5.6中的内置Auth系统,我的网站上有多个页面,我需要用户注册或登录才能执行诸如购买等操作。

我将登录重定向到用户登录之前所在的上一页,但似乎无法通过注册来使用。

我要寻找的示例:

  1. 用户点击页面X上的注册。
  2. 用户进入注册页面
  3. 然后,用户被重定向回X页面而不是首页
  4. 用户总是被重定向回他们先前所在的页面。

这是我的RegisterController.php:

//protected $redirectTo = '/'; (Originally Returning Back To Home)

//WHAT I'M USING NOW TO TRY AND REDIRECT BACK TO PREVIOUS PAGE

    protected function redirectTo()
    {
    return url()->previous();
    }

// Guards/Redirects user to home if logged in and tries to access register page again.

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


// If users email exists in my transaction database, I show them a Thank you message upon registering. And Still want to redirect them back to previous page.

    public function registered($request, $user) {
        $where = [
            ['customer_email', $user->email],
            ['user_id', null],
        ];

        if (Transaction::where($where)->exists()) {
            Transaction::where($where)->update(['user_id' => $user->id]);

            return url()->previous()
                ->with('success', 'Thank you for your previous transaction! Go to your Profile to review your transaction history.');
        }
    }

这是我如何与登录控制器一起工作的方法,但不适用于注册控制器。

public function showLoginForm()
{
    if (session('link')) {
        $myPath     = session('link');
        $loginPath  = url('/login');
        $previous   = url()->previous();

        if ($previous = $loginPath) {
            session(['link' => $myPath]);
        }else{
            session(['link' => $previous]);
        }
    }
    else{
        session(['link' => url()->previous()]);
    }
    return view('auth.login');
}

protected function authenticated(Request $request, $user)
{
    return redirect(session('link'));      
}

任何帮助,将不胜感激。

科林博士

好的,因此您可以采用与登录控制器类似的方式进行操作。

首先,您需要在注册控制器中创建以下函数,以覆盖默认值并将URL保存到会话中

/**
* Show the application registration form.
*
* @return \Illuminate\Http\Response
*/
public function showRegistrationForm()
{
    if (session('link')) {
        $myPath     = session('link');
        $registerPath  = url('/register');
        $previous   = url()->previous();

        if ($previous = $registerPath) {
            session(['link' => $myPath]);
        }else{
            session(['link' => $previous]);
        }
    } else{
        session(['link' => url()->previous()]);
    }
    return view('auth.register');
}

然后,在注册控制器中再次创建以下功能

protected function redirectTo()
{
    return redirect(session('link'))->with('success', 'Thank you for your previous transaction! Go to your Profile to review your transaction history.');
}

您可能还希望在其中设置默认路由,以防他们直接访问注册表。所以

protected function redirectTo()
{
    if(session('link')){
        return redirect(session('link'))->with('success', 'Thank you for your previous transaction! Go to your Profile to review your transaction history.');
    }
    return redirect('/home')->with('success', 'Thank you for your previous transaction! Go to your Profile to review your transaction history.');
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在laravel中注册用户后如何将用户添加到另一个表?

登录后重定向到上一个操作

注销后Django重定向到上一个/当前URL

角度4:登录时将用户重定向到上一个会话中的上次访问页面

在php中从Google登录后如何重定向到上一个链接?

在Firebase和HTML中成功注册或登录后,如何将用户重定向到另一个页面

在Django中注册后重定向到上一页

用户使用Ion Auth CodeIgniter登录后如何将用户重定向到另一个页面

注销时如何将用户重定向到上一页?

如何将用户重定向到上一页zend Framework 3

工作完成后,烧瓶重定向到上一个网址

如何将用户从控制器重定向到另一个域

如何将用户请求重定向到Kubernetes中的另一个部署?

如何将用户重定向到另一个内部页面?

注册用户后如何将用户导航(重定向)到页面 - React

将所有特定的URL重定向到上一个文件夹

如果用户在django中注册后首次登录,如何将用户重定向到其他页面?

Laravel 注册成功后重定向到上一页

如何在 Windows 加载时将用户重定向到另一个 url

如何使用计时器重定向到上一个视图?

注册失败后如何将用户重定向到特定页面?

登录/注册后如何将用户重定向到特定路由?

如何将用户从一个网页或另一个网页重定向到该网页

在Laravel中成功注册后,如何重定向到上一页?

一个按钮-3个应用商店-如何将用户重定向到适当的应用商店?

如何将FragmentActivity的后堆栈弹出到上一个活动?

登录后如何基于JWT令牌将用户重定向到另一个页面?

密码确认后如何将用户重定向到URL?

登录后如何将用户重定向回所需的URL(php)