Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Zend framework2 Zend Framework 2导航';s例外_Zend Framework2 - Fatal编程技术网

Zend framework2 Zend Framework 2导航';s例外

Zend framework2 Zend Framework 2导航';s例外,zend-framework2,Zend Framework2,我想在layout.phtml文件中显示导航菜单: <?php echo $this->navigation('navigation')->menu(); ?> 然后我为Zend/Navigation实例编写了一个加载程序: 'service_manager' => array( 'factories' => array( 'translator' => 'Zend\I18n\Translator\Transla

我想在layout.phtml文件中显示导航菜单:

<?php echo $this->navigation('navigation')->menu(); ?>
然后我为Zend/Navigation实例编写了一个加载程序:

'service_manager' => array(
        'factories' => array(
            'translator' => 'Zend\I18n\Translator\TranslatorServiceFactory',
            'navigation' => 'Zend\Navigation\Service\DefaultNavigationFactory',
        ),
    ),
但我反复遇到这个例外:

致命错误:Zend\Mvc\Router\Exception\RuntimeException:路由为 在中找不到名称“” C:\wamp\www\bsol\vendor\zendframework\zendframework\library\Zend\View\Helper\Navigation\AbstractHelper.php 在线471

我试图解决将此行添加到菜单声明中的问题:

             'pages' => array(
                    'route' => '/place',
                    'country' => array(
                        'label' => 'Countries',
                        'route' => '/place/country',
                    ),
然而,在这种情况下,我得到了另一个不同的例外:

致命错误:未捕获异常 带有消息的“Zend\Navigation\Exception\InvalidArgumentException” '无效参数:$page必须是的实例 Zend\Navigation\Page\AbstractPage或Traversable,或中的数组 C:\wamp\www\bsol\vendor\zendframework\zendframework\library\Zend\ServiceManager\ServiceManager.php 在线733

更新:根据Jurian Sluiman的建议

这必须是我的路由器配置(module\Place\config\module.config.php),如果我有一个名为“Place”的模块,有3个控制器(城市、国家和州):

这一定是我的导航配置(实际上我在/config/autoload/menu.global.php中的一个自动加载文件中找到了这个):


…现在它成功了

通常路线不以
/
开头。
/
是路由名称的分隔符,因此当组装
/place
路由时,您有一个父级
,然后是子级
“place”
。第一个是空的,给你这个错误

可能您将路由名称与路由本身混淆了。您必须提供路由的名称,因此将返回路由本身(URL)。因此,假设您有以下路由配置:

'router' => array(
    'routes' => array(
        'place' => array(
            'type' => 'literal',
            'options' => array(
                'route'    => '/place',
                'defaults' => array(
                    // Some defaults here
                ),
            ),
        ),
    ),
),

在这种情况下,您的路线名称
place
,而不是
/place
。如果您有不同的路线配置,那么请将路线配置放入您的问题中,以便我可以更新我的答案。

通常路线不以
/
开头。
/
是路由名称的分隔符,因此当组装
/place
路由时,您有一个父级
,然后是子级
“place”
。第一个是空的,给你这个错误

可能您将路由名称与路由本身混淆了。您必须提供路由的名称,因此将返回路由本身(URL)。因此,假设您有以下路由配置:

'router' => array(
    'routes' => array(
        'place' => array(
            'type' => 'literal',
            'options' => array(
                'route'    => '/place',
                'defaults' => array(
                    // Some defaults here
                ),
            ),
        ),
    ),
),

在这种情况下,您的路线名称
place
,而不是
/place
。如果您有不同的路线配置,请在您的问题中输入路线配置,以便我可以更新我的答案。

是。你说得对。当我为我的模块编写路由配置时,我犯了一些错误。啊哈,这个答案也帮助了我,当我输入路由时,它有一个大括号,打破了一切,但错误消息与它们不是“翻译者”有关:
致命错误:未捕获异常“Zend\Mvc\Router\exception\RuntimeException”,在
中显示消息“未提供翻译程序”,这让我很生气。是的。你说得对。当我为我的模块编写路由配置时,我犯了一些错误。啊哈,这个答案也帮助了我,当我输入路由时,它有一个大括号,打破了一切,但错误消息与它们不是“翻译者”有关:
致命错误:未捕获的异常“Zend\Mvc\Router\exception\RuntimeException”,在
中显示消息“未提供翻译程序”,这让我很生气。
return array(
    'navigation' => array(
        'default' => array(
            'place' => array(
                'label' => 'Places',
                'route' => 'country',
                'pages' => array(
                    'country' => array(
                        'label' => 'Countries',
                        'route' => 'country',
                    ),
                    'state' => array(
                        'label' => 'States',
                        'route' => 'state',
                    ),
                    'city' => array(
                        'label' => 'Cities',
                        'route' => 'city',
                    ),
                ),
            ),
        ),
     ),
);
'router' => array(
    'routes' => array(
        'place' => array(
            'type' => 'literal',
            'options' => array(
                'route'    => '/place',
                'defaults' => array(
                    // Some defaults here
                ),
            ),
        ),
    ),
),