3

我正在尝试渲染错误模板(例如error400.ctp),但使用依赖于AppController 中设置的组件和变量的默认布局(站点页眉和页脚)。渲染错误页面时如何告诉 Cake 使用 AppController?

我已经尝试过制作一个扩展 AppController 的 ErrorController,但它会因缺少操作而中断。

4

1 回答 1

4

这是我的工作 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 实例,在我的情况下,由于组件中的错误而引发了类错误的重复声明。此错误导致某种循环导致错误页面无法呈现。

于 2015-10-15T18:40:13.803 回答