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