2017-06-16 100 views
1

我跟隨了幾個關於導航/ partials的教程,並且在顯示時遇到問題。我在模塊中爲view/partial創建了一個文件夾,並向控制器添加了一個動作(不要以爲我需要這個)。所以在我的佈局我叫出這樣的:Zend 2麪包屑問題

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

然後當我嘗試加載任何網頁時,出現此錯誤出現:

致命錯誤:Zend的\查看\異常\ RuntimeException的:Zend的\查看\ Renderer \ PhpRenderer :: render:無法渲染模板「partial/breadcrumb.phtml」; resolver無法解析到/var/www/html/vendor/Zend/View/Helper/Navigation/AbstractHelper.php 170行上的文件

任何幫助將非常感謝提前。

更新:2017年6月18日上午9:20 EST

我有兩個頁面不顯示麪包屑。我在想這是因爲他們有'約束'。我已經把這個在導航中,但它似乎並沒有工作。有誰知道什麼是正確的方法來做到這一點?

  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', 
      ), 
     ), 
     ), 
    ), 
), 

回答

0

看來你應該含蓄地映射您正在使用該模板。所以,打開你的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]是路線模式。

讓我們知道它是否對您有幫助!

+0

我已經在module.config中。雖然不是那樣的。但它並沒有解決問題。我仍然收到無法找到的錯誤。我嘗試了一下,但沒有運氣。 –

+0

你的致命錯誤問題消失了嗎? – unclexo

+0

是的,問題沒有了。然而,我不能讓麪包屑出現在有「突發事件」的頁面上。我添加到上面的帖子。 –