2016-01-05 43 views
3

繼CakePHP看起來有點混亂,而且不那麼直截了當,我創建了一個基本的認證邏輯,但是,我不能似乎加載了Auth組件。'錯誤:調用成員函數allow()在CakePHP 3中的一個非對象'AuthComponent

下面是部分代碼從AppController.php

public function initialize() 
{ 
    parent::initialize(); 

    $this->loadComponent('RequestHandler'); 
    $this->loadComponent('Flash'); 
    $this->loadComponent('Auth', [ 
      'authenticate' => ['Form' => ['fields' => ['username' => 'email', 'password' => 'password']]], 
      'loginAction' => ['controller' => 'Users', 'action' => 'login'], 
      'loginRedirect' => ['controller' => 'Groups', 'action' => 'index'], 
      'logoutRedirect' => ['controller' => 'Users', 'action' => 'login'] 
    ]); 
} 


//Allow basic views 

public function beforeFilter(Event $event) 
{ 
    $this->Auth->allow(['index', 'view', 'display']); 
} 

現在不管我運行的控制器或動作時,我總是收到以下錯誤:

Error: Call to a member function allow() on a non-object 

被引用下面的行:

$this->Auth->allow(['index', 'view', 'display']); 

它必須是一個簡單的事情,但我只是無法在文檔中找到它,因此非常感謝任何幫助或指導。

回答

3

檢查您的子控制器的方法initialize()是否正在調用父級方法。

class MyController extends AppController 
{ 
    public function initialize() { 
     parent::initialize(); 
     //rest of code 
    } 
} 
0

我這有一個當我沒有Template/Users/login.ctp模板只有通過檢查

$e = new \Exception('How did I got here anyway?'); 
debug($e->getTraceAsString()); 

獲得的堆棧跟蹤屈服後創建尚未

設法找出

#5 vendor/cakephp/cakephp/src/Error/ExceptionRenderer.php(318): Cake\Controller\Controller->render('missingTemplate') 
相關問題