2013-11-22 5 views

ответ

16

В вашем config.yml, убедитесь, что у вас есть это сконфигурировано:

fos_rest: 
    format_listener: true 
    routing_loader: 
     default_format: json 
     include_format: false 

Надежда, что помогает

EDIT:

Существует пример в FOSRestBundle Docs, который показывает, как использовать ClassResourceInterface. Самое большое различие заключается в том, что вам не нужно вручную определять маршруты. Интерфейс будет генерировать ваши маршруты на основе вашего имени класса и имени метода. Так что это очень важно, что вы называете ваши методы (вы можете переопределить, как используется имя класса, это показано в документации)

, например, что-то вроде этого:

use FOS\RestBundle\Routing\ClassResourceInterface { 

class UserController implements ClassResourceInterface { 

    public function cgetAction() { 
     //return a list of all users 
    } 
} 

будет генерировать маршрут это выглядит так: [GET] /users. Вот как я использую комплект, и он отлично работает. Мне также не нужно использовать опцию {_format}, потому что мне не нужно вручную определять маршруты в любом месте.

примечание - см. Также мой первоначальный ответ, я сделал редактирование, которое также может помочь в том, как вы используете комплект. Я не пробовал использовать пакет так, как вы, поэтому я не уверен, что это сработает или нет, но docs заставит его выглядеть так, как будто он будет работать.

+0

Нет, это не работает. Я смог достичь этого, удалив 'type: rest' из' routing.yml' и используя аннотации, такие как '@Rest \ Get ("/user ")' в контроллере. –

+0

Я полагаю, это зависит от того, как вы используете комплект. Я использую ClassResourceInterface, и это работает отлично. – Sehael

+0

Можете ли вы показать пример того, как вы его используете? –