2011-01-31 42 views
0

我有我的UsersController當然擴展我的app_controller。

在我app_controller我有我的$組件定義爲這樣:

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

當我嘗試訪問我的用戶索引視圖,我得到一個錯誤(這意味着驗證組件還沒有在激活控制器)。

如果我把這個線直接在我的UsersController:

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

頁按預期工作。

我的遠程服務器有後面的問題。但是我的本地開發環境似乎很好地擴展了app_controller的$組件。

有誰知道爲什麼會發生這種情況?

這裏是我的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. 
} 
} 
+0

你可以粘貼你的app_controller代碼嗎?蛋糕合併默認值,所以你可能做一些有趣的__construct在控制器之一 – dogmatic69 2011-01-31 21:19:01

回答

0

我有一個問題,像這樣的方式回到(但我認爲它已經被固定)。 Cake對組件聲明中'Auth'&'Acl'的順序很敏感。嘗試將它們交換。我在你的兩個代碼示例中看到它們都是交換。