Php 获取用户在Laravel中重定向的URL并添加为URL参数
我刚在我的电脑上安装了Laravel,我的路由有问题。当用户键入URLPhp 获取用户在Laravel中重定向的URL并添加为URL参数,php,laravel,laravel-4,laravel-routing,Php,Laravel,Laravel 4,Laravel Routing,我刚在我的电脑上安装了Laravel,我的路由有问题。当用户键入URLhttp://laravel.app/admin在不登录的情况下,我想将其重定向到http://laravel.app/login?Return_URL=http://laravel.app/admin就像Jeffrey Way对Laracast所做的那样 我怎么做 我已经将其添加到我的routes.php中 Route::get('/admin',array('before'=>'auth','as'=>'admin.ind
http://laravel.app/admin
在不登录的情况下,我想将其重定向到http://laravel.app/login?Return_URL=http://laravel.app/admin
就像Jeffrey Way对Laracast所做的那样
我怎么做
我已经将其添加到我的routes.php中
Route::get('/admin',array('before'=>'auth','as'=>'admin.index','uses'=>'AdminController@index'));代码>
我不知道下一步该怎么办
==澄清===
当用户转到受保护的页面,即/admin
或/admin/{{{other page}}
时,我希望它被重定向到/login
,但要使用URL参数,在他被重定向到登录页面之前,该参数在其中。成功登录后,用户将被重定向到他要访问的第一个URL,该URL在?Return\u URL=
参数中被捕获。为什么不使用重定向::designed('fallback')
?这会将用户重定向回他想要查看的页面。您还可以提供备用url
你可以阅读更多关于它的内容
编辑:
更具体地说,您可以按以下方式执行:
Route::group(array('prefix' => 'admin','before' => 'auth'),function(){
//here you're admin routes
});
在过滤器文件中,您可以将auth过滤器更改为类似以下内容:
Route::filter('auth',function(){
if(!Auth::check())
return Redirect::guest('login');
});
guest方法将其设置为在会话中保存所需的url。
在登录页面上,您可以在尝试用户凭据后执行此操作:
Route::intended('fallback');
但是,如果确实想使用查询参数执行此操作,只需执行以下操作:
Route::filter('auth',function(){
if(!Auth::check())
return Redirect::to('login',array('Return_URL' => Route::current()));
});
您应该在app/filters.php上有一个过滤器文件。如果你打开它,你会看到这样的东西:
Route::filter('auth', function()
{
});
这是在路由服务之前触发的函数。在这里你可以重定向,如果他们没有登录。例如:
Route::filter('auth', function()
{
if (!Auth::check())
{
// The user is not logged in so redirect them
}
});
有关更多信息,请签出文档的和。您可以修改“身份验证”筛选器。如果用户未登录,请重定向到登录页面
Route::filter('auth', function(){
if Auth::guest(){
// sign them in
}
else{
return Redirect::to('pathToLogin');
}
};
这似乎是促进最佳实践的唯一答案。然而,我觉得你应该把你的答案放大(只有链接的答案是自找麻烦的),还应该提到Redirect::guest()
,它与Redirect::destined()
。所以你的意思是我必须做大量的Redirect::destined('fallback'))
因为用户也可能键入链接/admin/show/
和其他同样受保护的页面?@alexrssell您是对的。我用更多信息更新了答案。我已经打开了那个文件。但你没有领会我的意思。我想在用户登录到URL后重定向他,在他被重定向到login
之前,我应用了filterauth
确定您的问题不清楚,这是您想要的