当用户登录时,我希望将他们重定向到他们以前所在的页面,并具有与该页面相同的哈希值。
例如如果他们在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;
}
}
}
答案 0 :(得分:0)
尝试这个
$suffix = '#'.Session::get('login_hash');
return '/admin/home/' . $suffix;
答案 1 :(得分:0)
您可以尝试以下方法:
return redirect(\Redirect::back()->getTargetUrl(). $suffix);