[英]Cannot autowire entity argument with @ParamConverter declaration
我遇到了@ParamConverter 的问题。 检测到实体 arguments,例如“服务”。
我认为多重路由 arguments 和 @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:
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
这是因为您正在使用参数转换器并使用auto_convert: false
停用它们。 您可以查看文档“您可以通过将 auto_convert 标志设置为 false 来禁用类型提示方法 arguments 功能的自动转换”
感谢您的回复,但巴蒂斯特是对的。
我设法通过更正 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
很好,做我想做的事
我关闭帖子。 谢谢
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.