在Zend Framework 2中使用路由

时间:2013-04-15 13:08:29

标签: php zend-framework zend-framework2 routes

我需要像zf1一样路由网址。

特别是我需要这些网址会自动重定向到适当的操作,而不是每次都指定新的路线。

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

所以段路线不起作用,我尝试过Literal路线,但我找不到合适的解决方案。

任何人都可以帮助我?

非常感谢

1 个答案:

答案 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',
        )
    )
)