是否可以在错误页面上使用AppController? (Cakephp 3.1)

时间:2015-10-13 13:24:01

标签: cakephp cakephp-3.0 cakephp-3.1

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

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

1 个答案:

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

相关问题