Laravel-如何使用上一页的哈希将用户重定向到上一页?

时间:2018-11-13 04:04:39

标签: laravel laravel-5.6

当用户登录时,我希望将他们重定向到他们以前所在的页面,并具有与该页面相同的哈希值。

例如如果他们在x.com/x#abc上并登录,则应将其重定向回x.com/x#abc

我正在成功使用AJAX在登录时将哈希值存储到会话中:

Session::put('login_hash', $_POST['hash']);

然后,我试图调整RedirectsUsers.php中的代码以附加此哈希值,但是,由于Session::get('login_hash')始终为空白,因此此操作无效。

我检查了其他视图,等等,发现Session::get('login_hash')实际上是正确填充的,只是RedirectsUsers.php似乎无法访问此值,因此登录后,用户可以到x.com/x而不是x.com/x#abc

鉴于此RedirectsUsers文件位于供应商文件夹中,因此不确定是否包含“使用会话”是否正确?

任何帮助将不胜感激。我使用的是 Laravel 5.6。

<?php

namespace Illuminate\Foundation\Auth;
use Input, Redirect, URL;
use Session;

trait RedirectsUsers
{
    /**
     * Get the post register / login redirect path.
     *
     * @return string
     */
    public function redirectPath()
    {
        if (\Auth::user()->user_type=='admin') {
            $suffix = !empty(Session::get('login_hash')) ? '#' . Session::get('login_hash') : '';
            return '/admin/home' . $suffix;
        } 
    }
}

2 个答案:

答案 0 :(得分:0)

尝试这个

$suffix = '#'.Session::get('login_hash');
return '/admin/home/' . $suffix;

答案 1 :(得分:0)

您可以尝试以下方法:

return redirect(\Redirect::back()->getTargetUrl(). $suffix);