【问题标题】:'__NAMESPACE__' in route config never work, and something wrong with child_routes in Zend Framework 2 (zf2)路由配置中的 '__NAMESPACE__' 永远不会起作用,并且 Zend Framework 2 (zf2) 中的 child_routes 有问题
【发布时间】:2014-04-12 02:55:52
【问题描述】:
return array(
    'controllers' => array(
        'invokables' => array(
            'Manager\Controller\Index' => 'Manager\Controller\IndexController',
            'Manager\Controller\Blog\Blog'  => 'Manager\Controller\Blog\BlogController',

        ),
    ),
    'router' => array(
        'routes' => array(
            'manager' => array(
                'type' => 'Hostname',
                'options' => array(
                    'route' => 'management.yfco.com',
                    'defaults' => array(
                        '__NAMESPACE__' => 'Manager\Controller',
                        'controller' => 'Index',
                        'action' => 'index',
                    )
                ),
                'may_terminate' => TRUE,
                'child_routes' => array(
                    'blog' => array(
                        'type' => 'Segment',
                        'options' => array(
                            'route' => '/blog[/:controller[/:action[/:id]]]',
                            'defaults' => array(
                                '__NAMESPACE__' => 'Manager\Controller\Blog',
                                'controller' => 'Blog',
                                'action' => 'index'
                            ),
                        ),
                    ),
                ),
            ),
        )
    ),
);

以上是我在module.config.php 中的配置。密钥__NAMESPACE__ 永远不会起作用,并且 Zf2 告诉“解析为无效的控制器类或别名:Blog”。

另一个问题是,当我没有设置child_routes 时,routeMatch 可以找到正确的控制器,即“Manager\Controller\Index”,但是当我添加上下文时,routeMatch 会在其他模块中找到其他控制器( \Application\Controller\IndexController 的索引操作)。

我该如何解决这个问题。我无法在 zf 网站上获得更多信息。

【问题讨论】:

    标签: php zend-framework2


    【解决方案1】:

    您不应该需要 '__NAMESPACE__' => 'Manager\Controller\Blog', 代码行。

    试试看

    'may_terminate' => TRUE,
    'child_routes' => array(
        'blog' => array(
            'type' => 'Segment',
            'options' => array(
                'route' => '/blog[/:controller[/:action[/:id]]]',
                'defaults' => array(
                    'controller' => 'Blog',
                    'action' => 'index'
                ),
            ),
        ),
    ),
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-31
      • 2012-10-09
      • 2017-06-03
      • 1970-01-01
      • 2016-04-15
      相关资源
      最近更新 更多