我需要像zf1一样路由网址。
特别是我需要这些网址会自动重定向到适当的操作,而不是每次都指定新的路线。
/site/getData
/site/getData?param=5&par2=test
/site/getOther
...
所以段路线不起作用,我尝试过Literal路线,但我找不到合适的解决方案。
任何人都可以帮助我?
非常感谢
答案 0 :(得分:2)
这应该通过一个非常默认的段路由来解决,就像文档中提供的那样。
'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' => 'default-controller-alias',
'action' => 'index',
),
)
现在,如果您设置控制器名称,如下所示:
'controllers' => array(
'invokables' => array(
'sites' => 'Namespace\Controller\SitesController',
'other' => 'Namespace\Controller\OtherController'
然后你应该能够完全达到你想要的效果。要为您的路线创建参数,您只需正确使用ViewHelper;)
$this->url('routename',
array(
'controller' => 'site',
'action' => 'getData'
),
array (
'query' => array(
'param1' => 'foo',
'param2' => 'bar',
'paramN' => 'baz',
)
)
)