Symfony 2使用FOSRestBundle验证路径参数

时间:2015-06-08 15:12:34

标签: symfony parameters fosrestbundle

我有一个像这样的删除路由,使用FOSRestBundle

/**
 * @Route("/delete/{id}")
 * @Security("has_role('ROLE_ADMIN')")
 * @Rest\View
 */
public function deleteAction(Request $request, $id)
{
    ...
}

我想确保id参数是数字。 我试过了:

@Route("/delete/{id}", requirements={"id" = "\d+"})

@QueryParam(name="id", requirements="\d+", description="User id")

@RequestParam(name="id", requirements="\d+", description="User id")

但这些解决方案都不起作用。找不到路线,或者不遵守约束。

1 个答案:

答案 0 :(得分:2)

这有效,但在尝试访问api/users/xx.json

等路由时,不会返回JSON编码的404响应
@Rest\Delete("/{id}", requirements={"id" = "\d+"}, defaults={"id" = 1})