【问题标题】:Why is CakePHP 3 plugin error template not displaying为什么 CakePHP 3 插件错误模板不显示
【发布时间】:2015-07-02 15:52:20
【问题描述】:

我最近升级到 CakePHP 3。我想使用主题,所以我使用蛋糕烘焙插件 PlgTest 创建了一个插件。这已成功创建。我在 AppController 中设置了主题变量。该应用程序现在使用在插件的模板目录中创建的模板。到目前为止一切顺利。

但是,当在 CSRFComponent 中抛出类似 ForbiddenException (403) 的异常时,显示的模板是默认模板,而不是插件模板目录中的模板。

我希望显示插件的 PlgTest/src/Template/Error/error400.ctp,而不是显示默认的 /Template/Error/error400.ctp。为什么?有没有快速的解决方案?

谢谢

【问题讨论】:

  • 因为您没有error controller 并且核心中的默认值没有扩展应用程序控制器。

标签: templates cakephp cakephp-3.0


【解决方案1】:

找到了一个很好的解决方案here,以防有人需要

<?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');
    }
}

功劳归于“Test Testington”

【讨论】:

    猜你喜欢
    • 2017-10-04
    • 1970-01-01
    • 2016-05-10
    • 2017-01-26
    • 1970-01-01
    • 1970-01-01
    • 2020-12-22
    • 1970-01-01
    • 2021-03-04
    相关资源
    最近更新 更多