Я отчаянно боролся с ZF2, я пытаюсь создать дерево маршрутов, чтобы:
Я использовал официальные документы и несколько других веб-сайтов, но все, что я смог сделать, это вызвать:
Остальные два не доходят до контроллера …
'manual' => array( 'type' => 'literal', 'options' => array( 'route' => '/manual', 'defaults' => array( 'controller' => 'Applicaton\Controller\Manual', 'action' => 'index' ), ), 'may_terminate' => true, 'child_routes' => array( // Segment route for viewing one blog post 'manufacturer' => array( 'type' => 'segment', 'options' => array( 'route' => '/[:manufacturer]', 'constraints' => array( 'manufacturer' => '[a-zA-Z0-9_-]+' ), 'defaults' => array( 'action' => 'manufacturer' ) ), 'may_terminate' => true, 'child_routes' => array( 'category' => array( 'type' => 'segment', 'options' => array( 'route' => '/[:category]', 'constraints' => array( 'category' => '[a-zA-Z0-9_-]+' ), 'defaults' => array( 'action' => 'category' ) ), 'may_terminate' => true, 'child_routes' => array( 'model' => array( 'type' => 'segment', 'options' => array( 'route' => '/[:model]', 'constraints' => array( 'model' => '[a-zA-Z0-9_-]+' ), 'defaults' => array( 'action' => 'model' ) ) ) ) ) ) ) ) ),
Спасибо за вашу помощь заранее, любая помощь будет принята с благодарностью!
Вот мое действие контроллера:
public function manufacturerAction() { echo 'I am in the manufacturer action!'; return new ViewModel(); }
Это можно сделать с помощью регулярных выражений. Измените свои маршруты в module.config.php следующим образом
'manual' => array( 'type' => 'Literal', 'options' => array( 'route' => '/manual', 'defaults' => array( 'controller' => 'Application\Controller\Manual', 'action' => 'index', ), ), ), 'manufacturer' => array( 'type' => 'Zend\Mvc\Router\Http\Regex', 'options' => array( 'regex' => '/manual/(?<manufacturer>[a-zA-Z0-9_-]+)', 'defaults' => array( 'controller' => 'Application\Controller\Manual', 'action' => 'manufacturer', ), 'spec' => '/manual/%manufacturer%', ), ), 'category' => array( 'type' => 'Zend\Mvc\Router\Http\Regex', 'options' => array( 'regex' => '/manual/(?<manufacturer>[a-zA-Z0-9_-]+)/(?<category>[a-zA-Z0-9_-]+)', 'defaults' => array( 'controller' => 'Application\Controller\Manual', 'action' => 'category', ), 'spec' => '/manual/%manufacturer%/%category%', ), ), 'model' => array( 'type' => 'Zend\Mvc\Router\Http\Regex', 'options' => array( 'regex' => '/manual/(?<manufacturer>[a-zA-Z0-9_-]+)/(?<category>[a-zA-Z0-9_-]+)/(?<model>[a-zA-Z0-9_-]+)', 'defaults' => array( 'controller' => 'Application\Controller\Manual', 'action' => 'model', ), 'spec' => '/manual/%manufacturer%/%category%/%model%', ), ),