[英]Cannot autowire entity argument with @ParamConverter declaration
I encountered an issue with @ParamConverter.我遇到了@ParamConverter 的问题。 Entities arguments are detected such as "service".
检测到实体 arguments,例如“服务”。
I think that multiples route arguments and @ParamConverter are responsables of this issue.我认为多重路由 arguments 和 @ParamConverter 是这个问题的责任者。
I have tried to deactivate auto_convert
option in sensio_framework_extra
without success.我试图停用
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:
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
) {
// ...
}
Stack:堆:
* Symfony 4.4
It's because You're using param converters and you deactivate them with auto_convert: false
.这是因为您正在使用参数转换器并使用
auto_convert: false
停用它们。 You can see documentation “You can disable the auto-conversion of type-hinted method arguments feature by setting the auto_convert flag to false”您可以查看文档“您可以通过将 auto_convert 标志设置为 false 来禁用类型提示方法 arguments 功能的自动转换”
Thank you for the response but Baptiste is right.感谢您的回复,但巴蒂斯特是对的。
I managed to do what I wanted by correcting the ParamConverter annotations.我设法通过更正 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
) {
// ...
}
I should not put the "name=''"我不应该把“name=''”
The auto_convert: false
is good and do what I want auto_convert: false
很好,做我想做的事
I close the post.我关闭帖子。 Thank you
谢谢
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.