使用ParamConverter合并两条路线



我想在Symfony 5上用ParamConverters合并两条路由。在根路由上,我想从Entity表中获取所有记录。在id路线上,我只想得到那个特定的id。但当我访问根路由时,我得到了以下异常:"无法从参数"的请求信息中猜测如何获得条令实例;cronjob">

/**
* @Route("", methods="GET")
* @Route("{id}", methods="GET")
*/
public function restGet(Cronjob $cronjob)
{
...//logic for getting all or one record
}

我用这种方法解决了

/**
* @ApiRoute("{id?}", methods="GET")
*/
public function restGet($id, Cronjobs $cronjob = null)
{
return $this->json(isset($id) ? $this->getRepository()->findAll() : $cronjob);
}

ParamConverter被隐式调用,$cronjob是否被填充。

$cronjob上的null和可为null的参数很重要:{id?}带问号。

我从AbstractController 扩展

最新更新