我在获取Laravel URL时遇到问题。
我有一个页面,如果用户未登录,则会将用户重定向到错误的url,并显示错误消息。
我正在使用redirect()->intended($this->redirectPath());
来使用户登录后返回用户在页面上的位置,因此我必须以某种方式编写代码来检查什么是重定向URL,以及是否是会产生错误的URL ,
我知道什么是URL,它必须将用户重定向到我需要设置的另一个URL。
我尝试了不同的服用方法
$this->redirectPath() == 'here goes the url'
和喜欢
redirect()->intended($this->redirectPath()) == 'again url here'
但没有任何效果。
答案 0 :(得分:0)
尝试一下:
return Redirect::intended('here goes the url');
或
return Redirect::intended();
intended()
检查会话索引url.intended是否存在并默认重定向到它,否则重定向到$ default ='/'可以覆盖。
答案 1 :(得分:0)
您必须了解redirect()->intended()
的实际作用。
它将查找名为url.intended
的会话变量,如session()->pull('url.intended')
(请注意,pull()
将在调用后删除该变量,这很方便,因为您通常只需要一次使用此变量)。
当前仅在调用redirect()->guest('/yourpath')
时设置此变量(它将当前URL设置为url.intended
),除非您使用session()->put('url.intended')
以自己的逻辑手动设置。 / p>
因此,最明显的使用方法是使用redirect()->guest('/login')
,然后在用户成功登录后,您可以使用redirect()->intended()
(不带参数)将用户重定向回该页面。最初将他发送到登录页面。