zend-framework2 - 设置 ZF2 中的 (404) 错误页面使用的布局变量

标签 zend-framework2

目前,我使用 BaseController 的 onDispatch 方法设置了应用程序的整体布局.phtml 使用的几个变量,我的所有其他 Controller 都扩展了该方法:

public function onDispatch(MvcEvent $e) 
{

    $config = $this->getServiceLocator()->get('config');
    $this->layout()->setVariable('platformName', $config['platform']['name']);
    $this->layout()->setVariable('platformYear', $config['platform']['year']);
}

这工作正常,直到我测试一些错误页面并发现这些页面没有提供变量,因为它没有使用基本 Controller 。

如何解决此问题并为错误页面提供相同的变量?

最佳答案

更改您正在监听的事件。

在这种情况下,我会将此逻辑移至应用程序引导事件或应用程序渲染事件(我尚未对此进行测试,但它可能会正常工作)。

一个示例,在您的 Module.php 中

public function onBootstrap($e)
{
    $config = $e->getApplication()->getServiceManager()->get('config');
    //$e->getViewModel()->setVariable();
}

尚未测试该注释行,但它应该会让您朝着正确的方向前进。

编辑:找到使用渲染事件的示例

public function onBootstrap($e)
{
    $event = $e->getApplication()->getEventManager();

    $event->attach('render', function($e) {
        $config = $e->getApplication()->getServiceManager()->get('config');
        $e->getViewModel()->setVariable('test', 'test');
    });
} 

关于zend-framework2 - 设置 ZF2 中的 (404) 错误页面使用的布局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18211279/

相关文章:

php - 使用 ZendFramework2 请求 Random.org API

php - 查找从今天到接下来或过去 30 天的所有记录

zend-framework2 - ZF2 服务定位器

zend-framework2 - Zend/ZF2/TableGateway mysql_insert_id 替换?

zend-framework2 - Zend Framework 2 重定向

php - 在 Zend Framework 2 中使用路由

mysql - 选择查询 zend 框架 2 的顺序和限制

zend-framework2 - 在 ZF2 路由器配置中的主机名下配置子路由的正确方法是什么?

php - rackspace 子容器不上传文件

php - ZF2 文件上传合集