Symfony 使用@ParamConverter传递不存在的id参数时接受null值
在传递路由中不存在的“id”时,是否可以返回“null”值Symfony 使用@ParamConverter传递不存在的id参数时接受null值,symfony,symfony4,Symfony,Symfony4,在传递路由中不存在的“id”时,是否可以返回“null”值 /** * @Route("/admin/product/edit/{id}", name="product_edit", methods={"POST"}) * @ParamConverter( * name="id", * class="App\Entity\Product", * options={"mapping": {"id": "id"}}
/**
* @Route("/admin/product/edit/{id}", name="product_edit", methods={"POST"})
* @ParamConverter(
* name="id",
* class="App\Entity\Product",
* options={"mapping": {"id": "id"}}
* )
* @param Product $product
* @param Request $request
* @return JsonResponse
*/
public function edit(Product $product = null, Request $request)
{
var_dump($product);die;
$user = $this->getUser();
if (!$product || $product->getUser() !== $user) {
throw new HttpException(500, "Product does not exist");
}
return new JsonResponse([]);
}
它总是给我一个错误:
App\\Entity\\Product object not found by the @ParamConverter annotation.
我想在返回null值时抛出HttpException。我还尝试将ParamConverter注释中的“Isoptional”参数更改为“false”,但它不起作用。删除
@ParamConverter
,您可以使用“/admin/product/edit/{id?}”
我通过删除@ParamConverter注释找到了解决方案。现在,这是工作!