Невозможно автоматически связать аргумент сущности с объявлением @ParamConverter - PullRequest
0 голосов
/ 20 апреля 2020

Я столкнулся с проблемой с @ParamConverter. Обнаружены аргументы сущностей, такие как «service».

Я думаю, что множественные аргументы маршрута и @ParamConverter являются ответственными за эту проблему.

Я попытался отключить параметр auto_convert в sensio_framework_extra, но безуспешно.

Cannot autowire argument $category of "App\Controller\Front\QuestionController::showRandomAction()": it references class "App\Entity\Category" but no such service exists.

sensio_framework_extra.yaml

sensio_framework_extra:
    router:
        annotations: false
    request:
        converters: true
        auto_convert: false

Контроллер

/**
 * @Route("/{id}/{slug}/", name="app_front_question_show", methods={"GET", "POST"})
 * @ParamConverter(name="category", class="App\Entity\Category", options={"mapping": {"slug": "slug"}})
 * @ParamConverter(name="question", class="App\Entity\Question", options={"mapping": {"id": "id"}})
*/
public function showAction(
   Request $request,
   Category $category,
   Question $question,
   AnswerRepository $answerRepository,
   ReportQuestionManager $reportQuestionManager
) {
    // ...
}

Стек:

* Symfony 4.4

Ответы [ 2 ]

0 голосов
/ 06 мая 2020

Спасибо за ответ, но Баптист прав.

Мне удалось сделать то, что я хотел, исправив аннотации ParamConverter.

/**
 * @Route("/{id}/{slug}/", name="app_front_question_show", methods={"GET", "POST"})
 * @ParamConverter("category", class="App\Entity\Category", options={"mapping": {"slug": "slug"}})
 * @ParamConverter("question", class="App\Entity\Question", options={"mapping": {"id": "id"}})
*/
public function showAction(
   Request $request,
   Category $category,
   Question $question,
   AnswerRepository $answerRepository,
   ReportQuestionManager $reportQuestionManager
) {
    // ...
}

Я не должен ставить "name =" '"

auto_convert: false - это хорошо, и делай, что хочу

Я закрываю пост. Спасибо

0 голосов
/ 21 апреля 2020

Это потому, что вы используете конвертеры параметров и отключаете их с помощью auto_convert : false. Вы можете просмотреть документацию «Вы можете отключить функцию автоматического преобразования аргументов подсказок типа, установив для флага auto_convert значение false»

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