Symfony 2.0路由参数_format

时间:2012-04-24 13:15:11

标签: routing symfony format

我有路由:

user:
    pattern:  /.{_format}
    defaults: { _controller: AlefUserBundle:User:index, _format: json }
    requirements: { _format: (xml|json|php), _method: GET }

当然它可以在浏览器中使用。但是,当我尝试使用KnpMenuBundle创建菜单时,我只获得/user/链接:

$menu->addChild('Użytkownicy', array('route' => 'user',
    'routeParameters' => array('_format' => 'json'),
        'attributes' => array(
            'title' => 'Lista użytkowników',
            'data-icon' => 'user',
            'data-id' => 'user_list',
        )
    )); 

我尝试清除缓存,但它根本不起作用。有没有办法存档?或者我需要输入Uri?

1 个答案:

答案 0 :(得分:3)

我把它改为{format}。它几乎按预期工作:

user:
    pattern:  /list.{format}
    defaults: { _controller: AlefUserBundle:User:index, format: html }
    requirements: { _format: (xml|json|html), format: (xml|json|html), _method: GET }

但我还在控制器中加了1行:

public function indexAction($format) //$_format
{
    $this->getRequest()->setRequestFormat($format);
...
}

它有效......