我有路由:
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?
答案 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);
...
}
它有效......