2013-11-19 2 views
0

Я использую пакет friendsofsymfony/rest-bundle ":" 1.0.*@dev ", пытаясь перейти с Symfony 2.2 на Symfony 2.3. приложение/Config/файл config.yml, я пытаюсь задать правила для fos_rest format_listener:Symfony2 FOSRestBundle: требует массив, но не может его проанализировать в config.yml

fos_rest: 
    view: 
     formats: 
      rss: false 
      xml: true 
      json: true 
     templating_formats: 
      html: true 
     force_redirects: 
      html: true 
      json: true 
     failed_validation: HTTP_BAD_REQUEST 
     default_engine: twig 
    format_listener: 
     rules: 
       fallback_format: json 
       prefer_extension: true 

Когда я делаю это, и я бегу composer.phar install, он говорит

[Symfony\Component\Config\Definition\Exception\InvalidTypeException] 
    Invalid type for path "fos_rest.format_listener.rules.fallback_format". Expected array, but got string 

Когда я изменил это к массиву, подобному такому:

fallback_format: 
    - json 

Это говорит

[Symfony\Component\Config\Definition\Exception\InvalidConfigurationException] 
    Unrecognized options "0" under "fos_rest.format_listener.rules.fallback_format" 

Я также попытался поставить кавычки «» JSON, но он по-прежнему говорит то же самое. Подобная ошибка возникает при попытке установки, добавив следующую строку к правилам format_listener:

default_priorities: ['json', 'html', 'txt', */*] 

Но вместо этого, он говорит Unrecognized options "0, 1, 2, 3" under "fos_rest.format_listener.rules.default_priorities", поскольку существует четыре значений уточняются вместо одного.

Кажется, что этот комплект настаивает на том, что он должен получить массив, но затем, когда ему дано, он не может его прочитать.

Неужели кто-нибудь столкнулся с этой проблемой/это ошибка/есть ли исправление для этого?

ответ

3

Похоже, вы пытаетесь установить json в качестве формата по умолчанию для запросов. Если это так, то теперь это делается по-другому.

fos_rest: 
    format_listener: true 
    routing_loader: 
     default_format: json 

EDIT:

Если вы желаете, чтобы заставить определенные форматы, а затем сделать что-то вроде этого:

format_listener: 
    rules: 
     - { path: ^/rest/path, priorities: [html, json, xml], fallback_format: json, prefer_extension: true} 

Вот полезный конфиг, что я обнаружил, что использует FOSRestBundle. У этого есть аналогичные примеры к тому, что я упоминал. Example Config

+0

Спасибо. Как насчет линий default_priorities и prefer_extension? Кроме того, это где-то документировано? После объединения этой конфигурации я выполнял [полную конфигурацию по умолчанию] (https://github.com/FriendsOfSymfony/FOSRestBundle/blob/master/Resources/doc/configuration-reference.md). –

+0

см. Мое редактирование. Есть несколько примеров на github от других поставщиков, но я пока не нашел никаких твердых документов. – Sehael

+0

обновил мой ответ ссылкой на пример config – Sehael

 Смежные вопросы

  • Нет связанных вопросов^_^