【问题标题】:Zend 2 breadcrumb issueZend 2 面包屑问题
【发布时间】:2017-06-21 03:15:59
【问题描述】:

我已经学习了一些关于导航/部分的教程,但在显示时遇到了问题。我在模块中为视图/部分创建了一个文件夹,并向控制器添加了一个操作(不认为我需要这个)。所以在我的布局中我会这样说:

  <?php echo $this->navigation('navigation')->breadcrumbs()->setMinDepth(0)->setPartial('partial/breadcrumb.phtml'); ?>

然后当我尝试加载任何页面时,它会出现此错误:

致命错误:Zend\View\Exception\RuntimeException: Zend\View\Renderer\PhpRenderer::render: Unable to render template "partial/breadcrumb.phtml";解析器无法解析到第 170 行 /var/www/html/vendor/Zend/View/Helper/Navigation/AbstractHelper.php 中的文件

任何帮助将不胜感激。

更新:美国东部标准时间 2017 年 6 月 18 日上午 9:20

我有两个页面没有显示面包屑。我认为这是因为他们有“限制”。我已经把它放在导航中,但它似乎不起作用。有谁知道这样做的正确方法是什么?

            array(
                'label' => 'View',
                'route' => 'blog/view[/:post_id]',
                'action' => 'view',
            ),
            array(
                'label' => 'List',
                'route' => 'blog/list[/:state_id]',
                'action' => 'list',
            ),

2017 年 6 月 19 日星期一更新 - 添加了更多导航 导航:

    'navigation' => array(
'default' => array(
    array(
        'label' => 'Home',
        'route' => 'home',
    ),
    array(
        'label' => 'Blog',
        'route' => 'blog',
        'pages' => array(
            array(
                'label' => 'Maps',
                'route' => 'blog/maps',
                'action' => 'maps',
            ),
            array(
                'label' => 'US Map',
                'route' => 'blog/us-map',
                'action' => 'UsMap',
            ),
            array(
                'label' => 'View',
                'route' => 'blog/view[/:post_id]',
                'action' => 'view',
            ),
            array(
                'label' => 'List',
                'route' => 'blog/list[/:state_id]',
                'action' => 'list',
             ),
          ),
       ),
    ),
 ),

【问题讨论】:

    标签: navigation zend-framework2 partial-views


    【解决方案1】:

    看来您应该隐式映射您为此使用的模板。所以打开你的module.config.php,这样设置模板

    'view_manager' => [
    
        'template_map' => [
            // This can be any name
            'partial/breadcrumb' => __DIR__ . '/../view/partial/breadcrumb.phtml',
    
            // Other assignments
        ],
        'template_path_stack' => [
            __DIR__ . '/../view',
        ],        
    ],
    

    现在用下面的 setPartial('partial/breadcrumb.phtml') 代替

    setPartial('partial/breadcrumb')
    

    添加显示面包屑链接

    虽然我没有看到您的module.config.php 进行路由配置。我可能错了,但我猜您没有在导航配置中使用 route 键的路由名称。如果路线如下所示

    'application' => [
        'type'    => Segment::class,
        'options' => [
            'route'    => '/application[/:action]',
            'defaults' => [
                'controller' => Controller\IndexController::class,
                'action'     => 'index',
            ],
        ],
    ],
    

    您的路线配置应在导航数组中,如下所示

    [
        'label' => 'Application',
        'route' => 'application', // but not /application[/:action]
        'action' => 'view',
    ],
    

    这里application 是路由名称(路由的顶部键),而/application[/:action] 是路由模式。

    如果对您有帮助,请告诉我们!

    【讨论】:

    • 我在 module.config 中已经有了。不过不是这样。但它并没有解决问题。我仍然收到无法找到的错误。我试着玩了一下,但没有运气。
    • 是的,这个问题已经解决了。但是,我无法让面包屑显示在具有“意外事件”的页面上。我在上面的帖子中添加了。
    • 很好,你已经弄清楚了!你能多显示一些路线和导航的代码吗?
    • 添加了完整的导航。如果您还需要什么,请告诉我
    • 我以前有过这种方法,但它不起作用。我又试了一次,现在可以了。我不确定现在其他地方发生了什么变化,但很高兴它得到了解决。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多