CakePHP の AuthComponent を使用すると奇妙なエラーが発生します。私の知る限り、コード自体に問題はありません。私の開発マシンと本番サーバーでうまく機能しています。ただし、実稼働サーバーで app/Core/config.php の「デバッグ」レベルを 2 (開発) から 0 (実稼働) に変更すると、アプリは失敗し、エラー ログには次のように記録されます。
PHP 致命的なエラー: 3 行目の /path/to/my/app/View/Elements/auth_status.ctp にクラス 'AuthComponent' が見つかりません
ファイルが に存在することを確認しました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>