我需要像在 zf1 中那样路由 url。
特别是我需要这些 url 将自动重定向到适当的操作,而无需每次都指定新路由。
/site/getData
/site/getData?param=5&par2=test
/site/getOther
...
因此,分段路线不起作用,我尝试了文字路线,但无法找到可行的解决方案。
任何人都可以帮助我吗?
非常感谢
我需要像在 zf1 中那样路由 url。
特别是我需要这些 url 将自动重定向到适当的操作,而无需每次都指定新路由。
/site/getData
/site/getData?param=5&par2=test
/site/getOther
...
因此,分段路线不起作用,我尝试了文字路线,但无法找到可行的解决方案。
任何人都可以帮助我吗?
非常感谢
这应该通过类似文档中提供的相当默认的分段路由来解决。
'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',
)
)
)