CakePHP - ErrorHandler没有扩展AppController的问题

Dav*_*vid 2 php frameworks cakephp

我一直想知道为什么我的错误页面导致我网站的某些页面无法呈现,但后来我意识到这是因为AppError扩展了ErrorHandler而不是AppController.这导致我在AppController的beforeFilter方法中设置的一些变量不被发送到视图.因为我无法从AppError访问会话变量,所以我认为我可以通过使用classRegistry来实例化一些可以简单地从AppController的beforeFilter中复制和粘贴其余代码的东西......但这不是'工作,也不是一个非常优雅的解决方案.有没有人有什么线索可以解决这个问题的最佳方法?谢谢,大卫.

小智 6

您的AppError类有一个控制器实例.您可以手动调用beforeFilter:

<?php
class AppError extends ErrorHandler {
  function error404() {
    $this->controller->beforeFilter();
    parent::error404();
  }
}
?>
Run Code Online (Sandbox Code Playgroud)