Предупреждение: отсутствует аргумент 1 для MyCompany \ CmsBundle \ Controller \ DocumentDuplicateController :: __ construct - PullRequest
0 голосов
/ 02 июля 2018

Я работаю над приложением, основанным на Symfony 2.7.

Я хочу внедрить службу Doctrine в мой контроллер и передать ее как конструктор службы, чтобы не полагаться на весь контейнер. Поэтому я поместил в файл services.yml следующее:

  app.controller.document_duplicate:
    class: MyCompany\CmsBundle\Controller\DocumentDuplicateController
    arguments:
      - "@doctrine"

... и я добавил в свой класс контроллера следующее:

public function __construct($doctrine)
{
    $this->doctrine = $doctrine;
}

... который ведет себя не так, как я ожидаю. Когда я просматриваю контроллер в браузере, я получаю исключение:

Предупреждение: отсутствует аргумент 1 для MyCompany \ CmsBundle \ Controller \ DocumentDuplicateController :: __ построить (), называется в /usr/src/app/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Controller/ControllerResolver.php в строке 194 и определено

Что мне нужно исправить, чтобы контроллер мог увидеть сервис, который я пытаюсь передать ему?

1 Ответ

0 голосов
/ 02 июля 2018

Оказалось, что мне просто нужно было поместить эту аннотацию выше определения класса, чтобы заставить ее обращать внимание на содержимое файла services.yml:

/**
 * @Route(service="app.controller.document_duplicate")
 */

Это добилось цели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...