Php Laravel重定向::预期()条件回退
据我所知,Php Laravel重定向::预期()条件回退,php,laravel,http-redirect,laravel-routing,Php,Laravel,Http Redirect,Laravel Routing,据我所知,Redirect::designed()将在登录之前重定向到用户想要的页面,或者返回到可以作为参数传递的url 我的问题是:如何使它首先检查会话中是否有一个预期的url,如果没有,它将执行Redirect::back(),如果失败,它将重定向到与Redirect::route('users.show',Auth::user()->username)相同的用户配置文件注意: 在某种程度上,可以通过将referer作为参数referer传递给Redirect::destined来实现预期的
Redirect::designed()
将在登录之前重定向到用户想要的页面,或者返回到可以作为参数传递的url
我的问题是:如何使它首先检查会话中是否有一个预期的url,如果没有,它将执行Redirect::back()
,如果失败,它将重定向到与Redirect::route('users.show',Auth::user()->username)相同的用户配置文件代码>注意:
在某种程度上,可以通过将referer作为参数referer
传递给Redirect::destined
来实现预期的行为
其余部分取决于Redirect::back
失败的标准,正如您所说的那样
答复:
这是我的照片
// Retrieve the referer - Ripped from Redirect::back()
$back = Redirect::getUrlGenerator()->getRequest()->headers->get('referer');
// your expected Fall back Redirection logic
if (itSucceed($back)) {
Redirect::intended($back);
} else {
Redirect::route(...)
}
您定义重定向::返回()
失败的标准是什么,以便触发下一个重定向::路由(…)
知道重定向::返回()
总是重定向到引用如果有人直接链接到登录页面,就不会有引用者…您应该解释您的代码在这里做什么。只包含未注释代码的答案质量很低。谢谢!幸运的是,我能很好地理解它;然而,詹姆斯是对的,你应该解释你的解决方案。我喜欢你的解决方案是多么简单汉克斯!根据马韦恩的回答做了一些修改。使用了Request::header('referer')
而不是答案中的长链。您是对的Request::header('referer')
简洁、粗俗,并产生相同的结果。
// Retrieve the referer - Ripped from Redirect::back()
$back = Redirect::getUrlGenerator()->getRequest()->headers->get('referer');
// your expected Fall back Redirection logic
if (itSucceed($back)) {
Redirect::intended($back);
} else {
Redirect::route(...)
}