【问题标题】:installing 'EdpModuleLayouts' to zendframework 2将“EdpModuleLayouts”安装到 zendframework 2
【发布时间】:2014-03-21 14:44:02
【问题描述】:

我正在尝试安装“EdpModuleLayouts”

我已按照模块here: 的说明进行操作

我也关注了here:的问题

我。 e;我将以下代码放在了我的 application.config.php 中?

return array(
    'modules' => array(
        ... ,
        'EdpModuleLayouts'
   )
);

然后我将以下代码放入我的模块配置中

'view_manager' => array(
        'template_path_stack' => array(
            'workers' => __DIR__ . '/../view',
            'Workers/layout' => __DIR__ . '/../view/layout/layout.phtml'
        ),
    ),
    'module_layouts' => array(
    'Workers' => 'Workers/layout'
),

我收到以下错误报告:

致命错误:未捕获的异常 'Zend\View\Exception\RuntimeException' 带有消息'Zend\View\Renderer\PhpRenderer::render: Unable to render 模板“工人/布局”;解析器无法解析到文件' zendframework\zendframework\library\Zend\View\Renderer\PhpRenderer.php 在第 499 行

【问题讨论】:

    标签: layout zend-framework2


    【解决方案1】:

    错误信息非常具体。

    Unable to render template "Workers/layout"
    

    这意味着view_manager 配置中没有定义模板Workers/layout。这里的技巧是你犯了一个简单的错误,将配置放置在错误的位置。

    template_path_stack 用于向view_manager 提供一些文件夹 的信息,其中模板文件按照文件路径映射。

    template_map 用于向view_manager 提供有关哪个文件覆盖特定模板的信息。

    查看module.config.php of the ZendSkeletonApplication 时可以很容易地看出两者的区别。考虑到这一点,您所要做的就是更改您的配置。

    另一个提示:不要使用 CamelCase 配置键,保持小写 ;)

    'view_manager' => array(
        'template_path_stack' => array(
            'workers' => __DIR__ . '/../view',
        ),
        'template_map' => array(
            // consider to make this lowercase "workers/layout"
            'Workers/layout' => __DIR__ . '/../view/layout/layout.phtml'
        )
    ),
    'module_layouts' => array(
        'Workers' => 'Workers/layout'
    ),
    

    【讨论】:

    • 谢谢你,山姆。绝妙的建议。它工作得很好
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-09
    • 1970-01-01
    • 2015-10-07
    • 1970-01-01
    • 1970-01-01
    • 2016-05-05
    相关资源
    最近更新 更多