2

我需要像在 zf1 中那样路由 url。

特别是我需要这些 url 将自动重定向到适当的操作,而无需每次都指定新路由。

/site/getData
/site/getData?param=5&par2=test
/site/getOther
...

因此,分段路线不起作用,我尝试了文字路线,但无法找到可行的解决方案。

任何人都可以帮助我吗?

非常感谢

4

1 回答 1

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',
        )
    )
)
于 2013-04-15T13:23:55.770 回答