Cakephp 当用户被重定向到登录时传递查询字符串

Cakephp 当用户被重定向到登录时传递查询字符串,cakephp,Cakephp,我有一个CakePHP网站,网址如下: 当用户(me)尝试在访问公文包管理员时,他们会自动转到的管理员登录,因为管理员方法都需要身份验证 我要做的是传递最后一页的查询字符串,这样当重定向发生时,它会在URL中这样说: 我该怎么做 我试过: $this->Auth->loginAction = array( 'admin' => true, 'prefix'=> 'admin', 'co

我有一个CakePHP网站,网址如下:

当用户(me)尝试在访问公文包管理员时,他们会自动转到的管理员登录,因为管理员方法都需要身份验证

我要做的是传递最后一页的查询字符串,这样当重定向发生时,它会在URL中这样说:

我该怎么做

我试过:

        $this->Auth->loginAction = array(
            'admin' => true,
            'prefix'=> 'admin',
            'controller' => 'users',
            'action' => 'login',
            '?' => array('continue' => $this->referer())
        );
但这只会导致一个重定向循环(不确定为什么它会尝试执行重定向:/

注意:我知道CakePHP在成功登录后会自动重定向用户,但我想添加查询字符串,因为我在应用程序中使用它来获得额外的jazz。

谢谢

蛋糕会自动(如果我记得的话)将您返回到登录后尝试访问的页面,除非您弄乱了
$this->Auth->redirectLogin

在before筛选器中,您可能会很幸运:

$this->Auth->loginAction = array('controller'=>'users',
                                 'action'=>'login', 
                                 '?' => array('continue'=>'/' .
                                    strtolower($this->name) . '/' .
                                    $this->action), 'admin'=>false);
(我添加了狡猾的换行符)

这将产生:

site.com/admin/login?继续=%2Fcontroller%2Faction
这和你的要求差不多

您可能需要或不需要
admin=>false

本质上,这将当前控制器名称和操作附加到
loginAction
重定向。可能有点狡猾
我不知道如何防止在login()函数中对斜杠进行编码,您可以在
$this->Session->read('Auth.redirect');
处获得最后一页,因此无需将其添加到url中。

导致url上出现这种情况:
http://driz.co.uk/admin/login?continue=%2Fusers%2Fadmin_login
然后抛出有关重定向循环的错误