У меня есть это как часть моей DI конфигурации, от скелета applicaiton:Как выбрать пространство имен контроллера с помощью маршрутизации Zend Framework 2?
'routes' => array(
'default' => array(
'type' => 'Zend\Mvc\Router\Http\Segment',
'options' => array(
'route' => '/[:controller[/:action]]',
'constraints' => array(
'controller' => '[a-zA-Z][a-zA-Z0-9_-]*',
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
),
'defaults' => array(
'controller' => 'Application\Controller\IndexController',
'action' => 'index',
),
),
),
Я хотел бы сделать следующую маршрутизацию:
http://me.com/mycontroller/myaction -->
controller=Applicaiton\Controller\Mycontroller
method=myactionAction
Однако выше конфигурация производит:
http://me.com/mycontroller/myaction -->
controller=Mycontroller
method=myactionAction
Как вы можете видеть, пространство имен для контроллера отсутствует. Где/как разместить пространство имен? (Я знаю, что я мог бы сделать псевдоним DI для каждого контроллера, но это обезопасит цель согласования сегмента.)
согласование сегментов возможно для действий и других параметров, но не для контроллеров. Вы можете использовать псевдонимы, чтобы помочь 'mycontroller' соответствовать' MyNamespace \ Mycontroller', но это не рекомендуется. Самый лучший, самый простой и наиболее эффективный способ - иметь маршруты для каждого контроллера, при необходимости использовать сегменты для действий. –
Хорошо. Имеет смысл. Если вы напишете свой ответ ниже, я приму его. – superdweebie