【发布时间】:2018-04-27 07:43:36
【问题描述】:
我在我的项目中使用 Symfony 和 Doctrine。我注意到一件奇怪的(对我来说)事情。
我的控制器中有简单的操作:
/**
* @param Request $request
* @param Product|null $product
*
* @Config\Route("/{category}/create", name="my_project_create_product")
* @Config\Route("/{category}/edit/{product}", name="my_project_edit_product")
* @Config\Template()
*
* @return array|\Symfony\Component\HttpFoundation\RedirectResponse
*/
public function createEditAction(Request $request, ProductCategory $category, Product $product = null)
product 参数是可选的,仅用于编辑操作,正如您在我的注释中看到的那样。
问题是,当我使用 url /{category}/create 时,它会以某种方式注入产品对象(它是我的集合中具有给定类别的第一个产品)。但是,product 参数应为 null。
问题是如果我不将product参数传递给url,它是如何自己注入的?
P.S 产品有分类参考。只有当我在方法中使用类别参数时才会发生这种情况。
Symfony 3.3.4 版
感谢您的帮助!
【问题讨论】: