【问题标题】:Is it possible to use AppController on error pages? (Cakephp 3.1)是否可以在错误页面上使用 AppController? (Cakephp 3.1)
【发布时间】:2015-10-13 13:24:01
【问题描述】:

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

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

【问题讨论】:

  • 我知道,这不是我的问题。即使关闭了调试,错误视图也不会使用 AppController。
  • 然后检查this
  • it breaks for missing actions. - 这可能意味着在尝试呈现错误页面时 抛出异常。异常渲染器Simply uses your Error controller - 如果存在,falling back to use a controller object 如果失败。一些调试可能会帮助您解决自己的问题。

标签: cakephp cakephp-3.0 cakephp-3.1


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-25
    • 1970-01-01
    • 2015-05-02
    • 1970-01-01
    • 2021-11-10
    • 2017-01-04
    • 2013-10-20
    • 1970-01-01
    相关资源
    最近更新 更多