我的控制器本地扩展了app_controller $ components和$ html helpers?

时间:2011-01-31 20:44:15

标签: cakephp login components authentication

我有我的UsersController,当然扩展了我的app_controller。

在我的app_controller中,我将$ components定义为:

$components = array('Acl', 'Auth', 'Session', 'RequestHandler');

当我尝试访问我的用户索引视图时,出现错误(这意味着控制器中未激活Auth组件)。

BUT

如果我将此行直接放在我的UsersController中:

$components = array('Acl', 'Auth', 'Session', 'RequestHandler');

页面按预期工作。

我的远程服务器有后一个问题。但我的本地开发环境似乎从app_controller中扩展了$ components。

有谁知道为什么会这样?

这是我的app_controller源代码:

class AppController extends Controller {

var $helpers = array('Html', 'Form', 'Session', 'Ajax', 'Javascript');   
var $components = array('Auth', 'Acl', 'Session', 'RequestHandler'); 

function beforeFilter() {
    //Configure AuthComponent  
    $this->Auth->authorize = 'actions';
    $this->Auth->loginRedirect = array('controller' => 'pages', 'action' => 'cms');
    $this->Auth->logoutRedirect = array(Configure::read('Routing.admin') => false, 'controller' =>       'users', 'action' => 'logout');
    $this->Auth->actionPath = 'controllers/';
    $this->Auth->allow('display'); // Allows all action =>  pages for non logged in users.
 }
}

1 个答案:

答案 0 :(得分:0)

我有这样的问题回来了(但我认为它已被修复)。蛋糕对'Auth'和'的顺序很敏感。组件声明中的“Acl”。尝试将它们交换成圆形。我在你的两个代码示例中看到他们交换。