2013-08-02 6 views
10

я получаю исключение:FOS Bundle отдыха: неспособный найти шаблон

Невозможно найти шаблон «»

Других подобные вопросы не помогли; и, как ни странно, он отлично работал, а затем внезапно начал давать мне это исключение.

композитор:

"friendsofsymfony/rest-bundle": "0.13.*@dev", 
    "jms/serializer-bundle": "0.12.*@dev", 

Я следую Automatic route generation: single RESTful controller (for simple resources)

конфигурации:

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(); 
    } 
+0

Проверьте мой ответ здесь: http://stackoverflow.com/a/32779936/828366 –

ответ

10

мне удалось решить эту проблему, установив слушателя явно ложное:

fos_rest: 
    format_listener: false 

EDIT

Это также работает:

fos_rest: 
    format_listener: 
     prefer_extension: false 
     default_priorities: 
      - json 
+0

Я не думаю, что это правильное решение. Вы просто отключили функцию согласования содержимого. –

+0

@WilliamDURAND делает редактирование забастовку вашей фантазии? – Tjorriemorrie

+1

Это не то, что я вам говорил: https://github.com/FriendsOfSymfony/FOSRestBundle/issues/518#issuecomment-22162359. Но да, это вопрос конфигурации. Вещь - либо вы используете расширение как предпочтительный способ установить «формат», который является плохим, но ... в любом случае просто измените параметр 'prefer_extension' на' true', или вы используете заголовок 'Accept', и у вас есть для настройки приоритетов (функция согласования контента). –

3

аннотировать действия контроллера с @View, чтобы решить эту проблему.

use FOS\RestBundle\View\View; 

Посмотрите документацию chapter View Response listener.


Если вы не хотите, чтобы комментировать каждое действие - вы можете установить аннотацию @View для полного класса с использованием my pull request here.

Добавьте это в свой composer.json, чтобы использовать PR.

"require": { 
    "friendsofsymfony/rest-bundle": "dev-dev-view-addition as 0.12.0", 

// ... 

"repositories": [ 
    { 
     "type": "vcs", 
     "url": "https://github.com/nifr/FOSRestBundle" 
    }, 
+0

Не удалось найти шаблон «MainBundle: секторы: cget.html. веточка». Я уже использую дополнительный пакет; config updated – Tjorriemorrie

+0

Я думаю, что маршрутизатор не понимает, что формат json – Tjorriemorrie

1

(Для справки) Если кто-то тестирует с клиентом покоя или вручную уверен чтобы задать заголовок в запросе: Принять: application/json

Поскольку fosRestBundle пытается определить правильный тип ответа из заголовков запроса.

-1

Для FOSRestBundle версии 2.0 конфигурации должны быть

fos_rest: 
    format_listener: 
     rules: 
      prefer_extension: false 
      fallback_format: json 
Смежные вопросы