我有四个child_routes调用相同的控制器和操作。
'noticia' => array( 'type' => 'Segment', 'options' => array( 'route' => 'noticia[/:slug]', 'constraints' => array( 'controller' => '[a-zA-Z][a-zA-Z0-9_-]*', 'action' => '[a-zA-Z][a-zA-Z0-9_-]*', ), 'defaults' => array( '__NAMESPACE__' => 'Application\Controller', 'controller' => 'Post', 'action' => 'index', ), ), ), 'dica' => array( 'type' => 'Segment', 'options' => array( 'route' => 'dica[/:slug]', 'constraints' => array( 'controller' => '[a-zA-Z][a-zA-Z0-9_-]*', 'action' => '[a-zA-Z][a-zA-Z0-9_-]*', ), 'defaults' => array( '__NAMESPACE__' => 'Application\Controller', 'controller' => 'Post', 'action' => 'index', ), ), ), 'ovarejao' => array( 'type' => 'Segment', 'options' => array( 'route' => 'o-varejao[/:slug]', 'constraints' => array( 'controller' => '[a-zA-Z][a-zA-Z0-9_-]*', 'action' => '[a-zA-Z][a-zA-Z0-9_-]*', ), 'defaults' => array( '__NAMESPACE__' => 'Application\Controller', 'controller' => 'Post', 'action' => 'index', ), ), ), 'servicos' => array( 'type' => 'Segment', 'options' => array( 'route' => 'servicos[/:slug]', 'constraints' => array( 'controller' => '[a-zA-Z][a-zA-Z0-9_-]*', 'action' => '[a-zA-Z][a-zA-Z0-9_-]*', ), 'defaults' => array( '__NAMESPACE__' => 'Application\Controller', 'controller' => 'Post', 'action' => 'index', ), ), ),
我需要传递一个参数,以便区分这些路线。怎么办?
答案 0 :(得分:1)
我认为你的结构有点偏差。为什么一个控制器的一个动作有四个不同的路径?这几乎毫无意义。
将您已设置的每条路线servicos
,ovarejao
,dica
,noticia
路由到PostController,并执行{{1}等类似操作},servicosAction
,ovarejaoAction
和dicaAction
如果各自的视图中的操作非常相似,那么您也可以使用一个模板进行所有操作,这样可以使模板更容易一些。这样做:
noticiaAction
如果这不符合您的标准,请更清楚您的问题。究竟是什么,你想要实现?