在默认布局中,您会收到有关缺少 Controller 的错误消息(这是正确的,因为该 Controller 不存在)

但是,当我切换到其他布局时,只会得到:an internal error has occurred。是什么原因造成的,如何确保在自定义布局中获得默认错误消息?

我使用cakephp 2.3.5,并在AppController.php的BeforeRenderer中使用此设置进行切换:

$this->layout = 'admin';

我唯一更改的是取消注释/注释是此行。我在admin主题中使用默认布局的副本测试了该问题,但错误消息仍然不同。

具有自定义布局的错误消息:



具有默认布局的错误消息:

最佳答案

CakePHP Docs中一样,您可以创建自定义的AppError来处理任何类型的错误,未找到404,未找到 Controller /组件/帮助器,安全错误...

我在AppController中做了一个检查 View 名称是否错误的方法。

您可以使用:

if ( $this->name == 'CakeError' ) {
    $this->layout = 'cake';
    return;
}

如果您感到好奇,请参见lib \ Cake \ View \ Errors以获取错误的可用 View 。

09-10 05:10
查看更多