我今天刚刚发现 zf2 并不喜欢两个控制器具有相同的名称,即使它们不在同一个模块中。但是,我需要能够调用 localhost/users/types 和 localhost/messages/types
目前,我的两个控制器具有相同的名称。我还发现无论模块的名称是什么,我总是得到消息/类型的结果,即使使用 localhost/nonexistingmodule/types oO
这是我的 module.config.php 的样子:
return array(
'controllers' => array(
'invokales' => array(
'messages' => 'Messages\Controller\MessagesController,
'messages' => 'Messages\Controller\TypesController,
),
),
'di' => array(
'instance' => array(
'alias' = array(),
),
),
'router' => array(
'routes => array(
'restful' => array(
'type' => 'Zend\Mvc\Router\Http\Segment'
'options' => array(
'route' => '/Messages/:controller[.:formatter][/:id],
'constraints' => array(
'module' => '[a-zA-Z][a-zA-Z0-9_-]*',
'controller' => '[a-zA-Z][a-zA-Z0-9_-]*',
'formater' => '[a-zA-Z][a-zA-Z0-9_-]*',
'id' => '[a-zA-Z0-9_-]*',
),
'defaults' => array(
'module' => 'Messages',
),
),
),
),
),
'view_manager' => array( ... ),
);
我试图在约束中设置 'module' => 'Messages'(我们永远不知道:p)但我遇到了 404 错误。Tasks 模块的 module.config.php 是相同的,但用于任务。我最初有别名,但是在我在某个地方读到这不是很推荐之后我删除了它们。
还有一件事,这是一个 REST API,我所有的控制器都扩展了 AbstractRestfulController(如果这很重要)
任何人都知道如何使我的 2 url 工作?
谢谢 :)