我正在尝试渲染错误模板(例如error400.ctp),但使用依赖于AppController 中设置的组件和变量的默认布局(站点页眉和页脚)。渲染错误页面时如何告诉 Cake 使用 AppController?
我已经尝试过制作一个扩展 AppController 的 ErrorController,但它会因缺少操作而中断。
我正在尝试渲染错误模板(例如error400.ctp),但使用依赖于AppController 中设置的组件和变量的默认布局(站点页眉和页脚)。渲染错误页面时如何告诉 Cake 使用 AppController?
我已经尝试过制作一个扩展 AppController 的 ErrorController,但它会因缺少操作而中断。
这是我的工作 ErrorController 以防有人来寻找它:
<?php
namespace App\Controller;
use App\Controller\AppController;
use Cake\Event\Event;
class ErrorController extends AppController
{
public function beforeRender(Event $event)
{
parent::beforeRender($event);
$this->viewBuilder()->templatePath('Error');
}
}
我在 AppController 中加载的组件之一存在错误。当 ErrorController 扩展 AppController 并且尝试访问控制器中的无效操作时,它会创建两个 AppController 实例,在我的情况下,由于组件中的错误而引发了类错误的重复声明。此错误导致某种循环导致错误页面无法呈现。