getUrl сбрасывает _format при установке на json

Я пытаюсь создать 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:, ожидая .json.


person shapeshifter    schedule 02.02.2014    source источник


Ответы (1)


Вы установили .json в качестве формата по умолчанию в своем маршруте?

Если вы используете FOSRestBundle, посмотрите routing_loader в конфигурации FOSRestBundle.

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

person Leevi Graham    schedule 03.02.2014
comment
У меня есть, routing_loader: default_format: json и include_format: true. Однако удаление значения по умолчанию не меняет вывод getUrl. - person shapeshifter; 03.02.2014
comment
Как выглядит ваша функция getUrl? - person Leevi Graham; 03.02.2014
comment
так получается есть тестовый кеш. Я чистил кеш dev и prod последние пару дней. Спасибо за помощь, дружище, то, что ты написал, верно. - person shapeshifter; 03.02.2014
comment
Превосходно. Рад, что ты разобрался. Я бы подумал, что кеш dev очистится так же, как dev. Хорошо знать. - person Leevi Graham; 04.02.2014