【发布时间】:2017-06-03 21:43:39
【问题描述】:
在 Zend Framework 2 中,我尝试使用以下路线:
'default' => array(
'type' => 'Segment',
'options' => array(
'route' => '/:username[/:action]',
'defaults' => array(
'__NAMESPACE__' => 'Website\Controller',
'controller' => 'User',
'action' => 'index',
),
),
'may_terminate' => true,
),
但是,当我转到 http://www.example.com/MyUsernameHere 时,我收到 404 not found 错误:
请求的控制器无法映射到现有的控制器类。
控制器: 用户(解析为无效的控制器类或别名:用户)
这几乎就像路由器完全忽略了 'Website\Controller' 命名空间,并在前面没有命名空间的情况下寻找 User。
所以,如果我像这样手动输入命名空间:
'default' => array(
'type' => 'Segment',
'options' => array(
'route' => '/:username[/:action]',
'defaults' => array(
'controller' => 'Website\Controller\User',
'action' => 'index',
),
),
'may_terminate' => true,
),
然后页面按预期加载。
什么给了? '__NAMESPACE__'参数不能用于控制器吗? ZF2 网站使用'__NAMESPACE__' 明确给出了example,但我无法在实践中使用它。示例是否错误且已过时?
【问题讨论】:
标签: php routing namespaces zend-framework2 zend-framework-mvc