2017-02-02 14 views
1

У меня проблема с Symfony. Я пытаюсь использовать фабрику для контроллера, но она не работает.Symfony3.2 Cotroller factory

#services.yml  
services: 
      app.foo_controller_factory: 
      class: Foo\Controller\DefaultControllerFactory 
      arguments: 
       container: '@service_container' 
      app.foo_controller: 
      class: Foo\Controller\DefaultController 
      factory_class: '@app.foo_controller_factory' 
      factory_method: create_service 

#/routing.yml 
foo_bar: 
    path: /foo 
    defaults: { _controller: app.foo_controller:indexAction } 

Проблема в том, что приложение никогда не проходит через DefaultControllerFactory.

Что может быть решением?

+0

Переключитесь в режим разработки. Сообщения об ошибках дадут вам подсказку. – Cerad

+2

На самом деле это немного интересно. factory_class и фабричный метод были удалены в S3, но вместо того, чтобы бросать ошибку, структура просто создает контроллер без использования фабрики. В любом случае замените заводскую фабрику фабрикой: ['@ app.foo_controller_factory', 'create_service'] http://symfony.com/doc/current/service_container/factories.html – Cerad

+0

Спасибо @Cerad !!! Ваше предложение помогло. – finder

ответ

1

мне пришлось изменить services.yml

#services.yml 
services: 
    app.foo_controller_factory: 
    class: Foo\BarBundle\Controller\DefaultControllerFactory 
    arguments: 
     container: '@service_container' 
    app.foo_controller: 
    class: Foo\BarBundle\Controller\DefaultController 
    factory: 'app.foo_controller_factory:createService'