Symfony 2 и 3. Как использовать сервис-контейнер в конструкторе контроллера

Бывают ситуации, когда в конструкторе контроллера нужно вызвать сервис-контейнер, но выводится ошибка:

Есть простое решение данной проблемы.

Пользовательский контроллер наследуется от класса Controller, а тот в свою очередь — от класса ContainerAware. В классе ContainerAware есть метод setContainer. Чтобы вызвать сервис-контейнер и присвоить его полю вашего контроллера, нужно переопределить метод setContainer:

 

Точно работает в версиях Symfony 2.7, 2.8, 3.0

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

code