FOS rest bundle: невозможно найти шаблон
Я получаю исключение:
Не удалось найти шаблон ""
Другие подобные вопросы не помогли; и, как ни странно, он отлично работал, а затем внезапно начал давать мне это исключение.
композитор:
"friendsofsymfony/rest-bundle": "0.13.*@dev",
"jms/serializer-bundle": "0.12.*@dev",
Я следую Автоматическое создание маршрута: один контроллер RESTful (для простых ресурсов)
конфигурации:
fos_rest:
format_listener: true
routing_loader:
default_format: json
view:
view_response_listener: 'force'
serializer:
serialize_null: true
sensio_framework_extra:
view: { annotations: false }
router: { annotations: true }
маршрутизации:
sectors:
type: rest
prefix: /{v}
resource: JJ\MainBundle\Controller\SectorsController
контроллер:
/**
* @RouteResource("Sector")
*/
class SectorsController extends Controller
...
public function cgetAction()
{
return $this->getSectorIndustryRepo()->findAll();
}
Ответы
Ответ 1
Мне удалось решить эту проблему, явно установив для прослушивателя значение false:
fos_rest:
format_listener: false
ИЗМЕНИТЬ
Это также работает:
fos_rest:
format_listener:
prefer_extension: false
default_priorities:
- json
Ответ 2
Аннотировать действие вашего контроллера с помощью @View
, чтобы решить эту проблему.
use FOS\RestBundle\View\View;
Взгляните на документацию chapter View Response listener.
Если вы не хотите комментировать все действия - вы можете установить аннотацию @View для полного класса, используя мой запрос на перенос здесь.
Добавьте это в свой композитор .json, чтобы использовать PR.
"require": {
"friendsofsymfony/rest-bundle": "dev-dev-view-addition as 0.12.0",
// ...
"repositories": [
{
"type": "vcs",
"url": "https://github.com/nifr/FOSRestBundle"
},
Ответ 3
(Для справки) Если One тестирует клиент покоя или вручную задает заголовок в запросе:
Accept: приложения /JSON
Поскольку fosRestBundle пытается определить правильный тип ответа из заголовков запроса.
Ответ 4
Для FOSRestBundle версии 2.0 config должен быть
fos_rest:
format_listener:
rules:
prefer_extension: false
fallback_format: json