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

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

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

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

 

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

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

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

Подтвердите, что Вы не бот — выберите человечка с поднятой рукой: