当设置为json时,getUrl会丢弃_format

时间:2014-02-02 23:52:28

标签: symfony fosrestbundle

我正在尝试生成一个url并将_format变量设置为json。 .json部分永远不会添加到路线中。设置为html或xml会正确添加格式。

来自app/console router:debug的路线,

api_1_get_page  GET      ANY    ANY  /api/page/{id}.{_format}                            

我的功能测试代码,

$this->getUrl('api_1_get_page', array('id' => $page->getId(), '_format' => 'json'));

当我转储这个时,我得到了,

string(18) "/api/pages/1"

然而,

$this->getUrl('api_1_get_page', array('id' => $page->getId(), '_format' => 'html'));

返回string(18) "/api/pages/1.html"

我猜测有一个设置控制它,我已经尝试打开和关闭每个fos_rest配置设置,没有什么是有所作为的。当测试检查Location:header expecting .json。

时,这也会导致我出现问题

1 个答案:

答案 0 :(得分:1)

您是否已将.json设置为路线中的默认格式?

如果您正在使用FOSRestBundle,请查看routing_loader in the FOSRestBundle config

请参阅:https://github.com/FriendsOfSymfony/FOSRestBundle/blob/master/Resources/doc/5-automatic-route-generation_single-restful-controller.md#routing