使用 ParamConverter 合并两条路线
Merge two routes with ParamConverter
我想在 Symfony 5 上用 ParamConverters 合并两条路由。
在根路径上,我想从实体 table 获取所有记录。
在 id 路线上,我只想获得那个特定的 Id。
但是当我访问根路由时,我得到了这个异常:
“无法从参数“cronjob”的请求信息中猜测如何获取 Doctrine 实例。”
/**
* @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 和可为空的参数
: {id?} 带问号。
我从 AbstractController 扩展
我想在 Symfony 5 上用 ParamConverters 合并两条路由。 在根路径上,我想从实体 table 获取所有记录。 在 id 路线上,我只想获得那个特定的 Id。 但是当我访问根路由时,我得到了这个异常: “无法从参数“cronjob”的请求信息中猜测如何获取 Doctrine 实例。”
/**
* @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 和可为空的参数 : {id?} 带问号。
我从 AbstractController 扩展