Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cakephp 如何在登录后重定向到Routing.prefixes页面?_Cakephp - Fatal编程技术网

Cakephp 如何在登录后重定向到Routing.prefixes页面?

Cakephp 如何在登录后重定向到Routing.prefixes页面?,cakephp,Cakephp,我正在使用来处理用户。 当用户想要访问需要登录的普通页面时,他们会被重定向到登录页面,成功登录后会重定向到该页面。这一切都是好的,都是意料之中的 我的问题是重定向到Routing.prefixes后面的页面,用户被发送到登录页面,但成功登录后被重定向到默认重定向页面$this->Auth->loginDirect 如何使Cake重定向到用户请求的位于Routing.prefix后面的页面? 我想这是我缺少的配置,还是 在config.php中,我有 Configure::write'Routin

我正在使用来处理用户。 当用户想要访问需要登录的普通页面时,他们会被重定向到登录页面,成功登录后会重定向到该页面。这一切都是好的,都是意料之中的

我的问题是重定向到Routing.prefixes后面的页面,用户被发送到登录页面,但成功登录后被重定向到默认重定向页面$this->Auth->loginDirect

如何使Cake重定向到用户请求的位于Routing.prefix后面的页面? 我想这是我缺少的配置,还是

在config.php中,我有
Configure::write'Routing.prefixes',array'admin'

您只需覆盖Cake的automagic登录过程

在你的app_controller.php的beforeFilter中:

$this->Auth->autoRedirect = false;
创建应用程序用户控制器并覆盖登录功能:

App::import('Controller', 'Users.Users');
AppUsersController extends UsersController {

    function login() {
        if(isset($this->data)) {
            if($this->Auth->login($this->data)) {
                $this->redirect(...)
            }
        }   
    }
}
我找到了解决办法

在AppController::beforeFilter中,此操作将修复它:


为了确保我们理解您的问题,您正在询问如何让CakePHP重定向到带有路由前缀的页面-即admin/users/myaccount-正确吗?
// make sure only admin can access admin area
if (isset($this->params['admin']) && $this->params['admin']) {
    if ($this->Auth->user() && !$this->Auth->user('is_admin')) {
        $this->redirect('/login');
    }
}