使用CakePHP的AuthComponent時出現一個奇怪的錯誤。據我所知,代碼本身沒有任何問題。它在我的開發機器和生產服務器上運行良好。但是,如果我將app/Core/config.php中的「調試」級別從生產服務器上的2(開發)更改爲0(生產),則應用程序將失敗,但在錯誤日誌中只有這一項:AuthComponent在開發模式下工作良好,但在生產中不起作用?
PHP Fatal error: Class 'AuthComponent' not found in /path/to/my/app/View/Elements/auth_status.ctp on line 3
我已檢查該文件是否存在於lib/Cake/Controller/Component/AuthComponent.php
中。我也試驗性地將App::uses('AuthComponent', 'Controller/Component')
添加到AppController和我的個人控制器中,但無濟於事。這一個讓我難住,我不能在我的開發機器上重現錯誤。這似乎表明服務器問題,但我無法找到解釋,並且文檔不清楚運行AuthComponent所需的先決條件。任何想法如何解決它?謝謝!
供參考,這是我的AppController:
class AppController extends Controller {
public $helpers = array('Recaptcha.Recaptcha');
public $components = array(
'Session',
'Auth' => array(
'loginAction' => array(
'controller' => 'users',
'action' => 'login'
),
'authenticate' => array(
'Form' => array(
'fields' => array('username' => 'email')
)
)
)
);
public function beforeFilter() {
parent::beforeFilter();
$this->Auth->allow();
}
}
爲auth_status.ctp代碼:
<div class="pull-right">
<?php if (AuthComponent::user('id')): ?>
<?php echo $this->Html->link("Welcome!", '/users/view/'.AuthComponent::user('id'));?>
|
<?php echo $this->Html->link('Logout', '/users/logout');?>
<?php else: ?>
<?php echo $this->Html->link('Login', '/users/login');?>
|
<?php echo $this->Html->link('Register', '/users/register');?>
<?php endif; ?>
</div>
什麼是你在你的元素代碼? – mark
我用代碼編輯了我的問題,歡呼聲 – elliot
應用程序在您的appcontroller文件上面使用了聲明本身,或者您獲得的$ components聲明應該就足夠了。這很奇怪。它是一個錯誤頁面,你在嗎?或正常的200頁? – mark