CakePHP -路由到管理员


CakePHP - Routing to admin

新手问题!

我有一个完整的管理设置:登录,认证等,它的工作。所以,现在我需要一个新的控制器,用于另一种情况,然后我创建一个名为PressDownloadsController的控制器,并为这个新控制器中的每个动作创建正确的视图。

我还创建了以下路由:

Router::connect('/pressdownloads', array('controller' => 'pressdownloads', 'action' => 'downloads'));

在pressDownloads控制器中,在一些动作之间有一些重定向。

当我尝试打开url/pressdownloads/downloads或只是/pressdownloads它只是去管理控制器,我需要登录之前访问pressdownloads区域。

为什么?

UsersController (admin)中的Auth Settings:

Ok。我明白了。那么验证设置:

      public $components = array(
    'Session',
    'Auth' => array(
        'loginAction' => array(
            'controller' => 'users',
            'action' => 'login',
            'prefix' => 'admin',
        ),
        'loginRedirect' => '/admin/events',
        'logoutRedirect' => '/admin',
        'authError' => 'Acesso negado',
        'flash' => array(
            'element' => 'admin/messages/error',
            'key' => 'auth',
            'params' => array()
        ),
        'authorize' => array('Controller'),
        'authenticate' => array(
            'Form' => array(
                'fields' => array('username' => 'email')
            )
        )
    )
);

我建议检查Auth组件设置以及如何将管理区与非管理区分开。另外,你可以在你的路由中指定不使用admin前缀,像这样:

Router::connect('/pressdownloads', array('controller' => 'pressdownloads', 'action' => 'downloads', 'admin' => false));

我相信你会在"Admin"被启用后去那个链接。简单地说,你必须从由admin提供的页面点击链接。

尝试在当前路由中添加额外参数"admin" => false

Router::connect('/pressdownloads', 
                array(
                   'controller' => 'pressdownloads', 
                   'action' => 'downloads', 
                   'admin' => false
                )
);