0
今日私は私のCakePHP 3アプリの変な動作に直面しました。ログインしていないユーザ(AuthController
で検出されたユーザ)は、ログインページにリダイレクトしてメッセージを表示する必要があります。代わりに、XYControllerから例外がスローされ、資格情報が失われます。コメント付きのコントローラ構造、分解および簡素化:私は完全に雲からの例外が表示される理由を、理解していない何コントローラーの不思議な継承
class AuthController extends AppController
{
public function initialize()
{
parent::initialize();
$this->loadComponent('Auth');
if (empty($this->Auth->getCredentials())) {
$this->Flash->error(__('You have to sign in to access the user area.'));
//THIS CODE IS REACHED! I'VE CHECKED
return $this->redirect(['language' => $this->language, 'controller' => 'Pages', 'action' => 'display', 'login'], 200, true);
}
}
class XYController extends AuthController
{
public function index() {
//THE CLOUD THROWS "AccessDeniedAcception" (as excepted)
//THE ERROR IS SHOWN IN THE BROWSER ON AN ERROR PAGE - WHY ?!?!
$data = getSomeDataFromCloud();
...
}
}
。私は、親コントローラのinitialize()
メソッドが最初に実行され、子コントローラからindex()
に到達する前にリダイレクトを実行すると考えました。私は何が欠けていますか?