Laravel 5.5登录后重定向到一个特定的路线
我试图做Laravel 5.5这样一个简单的事情,我不敢相信有办法做到这一点。Laravel 5.5登录后重定向到一个特定的路线
我有一个按钮,如果用户通过身份验证,它应该做一些事情,如果用户没有通过身份验证,它应该发送用户登录页面,并在用户登录后重定向到另一个页面。如何将其他页面URL作为参数传递给登录页面?
该按钮我的刀片代码:
@if(empty($_user)) <a href="{{ route('login') }}" class="button button-reply icon-button reply-icon" title="Post a reply">Post Reply</a>
@else
<a href="#reply-post" class="button button-reply icon-button reply-icon" title="Post a reply">Post Reply</a>
@endif
我缺少的东西?有没有办法做这样一件基本的事情?我知道,如果最终页面受到auth中间件的保护,Laravel会重定向,但在这种情况下,页面不在该中间件后面。
回答:
我解决它通过使最终URL到登录页面,然后将其包含在登录表单隐藏输入到终于在LoginController中的redirectPath()
功能使用它。
这是在页面刀片代码到redirectTo传递到登录页面的网址:
<a href="{{ route('login') }}?redirectTo={{ urlencode(route('topic', $topic->id)) }}" class="button button-reply icon-button reply-icon" title="Post a reply">Post Reply</a>
然后在登录表单:
@if(!empty(app('request')->input('redirectTo'))) <input type="hidden" name="redirectTo" value="{{ urldecode(app('request')->input('redirectTo')) }}" />
@endif
而在redirectPath()
功能:
/** * If there's a defined redirectTo, use it
*/
if (!empty(request()->input('redirectTo'))) {
$this->redirectTo = request()->input('redirectTo');
}
这对我来说很好,但我仍然相信Laravel应该有一个内置的解决方案,所以如果有人知道内置的解决方案,或更好的方式来解决这个问题,请在这里分享!
以上是 Laravel 5.5登录后重定向到一个特定的路线 的全部内容, 来源链接: utcz.com/qa/265172.html