POST管线注释symfony2

POST管线注释symfony2,symfony,routes,Symfony,Routes,我正在尝试开发一个RESTAPI,我对路由注释有一个问题,因为get工作得很好,我的get代码如下 /** * @QueryParam(name="offset", requirements="\d+", nullable=true, description="Offset from which to start listing pages.") * @QueryParam(name="limit", requirements="\d+", nullable=true, defaul

我正在尝试开发一个RESTAPI,我对路由注释有一个问题,因为get工作得很好,我的get代码如下

    /**
 * @QueryParam(name="offset", requirements="\d+", nullable=true, description="Offset from which to start listing pages.")
 * @QueryParam(name="limit", requirements="\d+", nullable=true, default="20", description="How many pages to return.")
 *
 * @View()
 *
 * @param Request               $request      the request object
 * @param ParamFetcherInterface $paramFetcher param fetcher service
 * GET Route annotation.
 * @Get("/users/")
 * @return array
 */
public function getUsersAction(Request $request, ParamFetcherInterface $paramFetcher)
{
    $offset = $paramFetcher->get('offset');
    $offset = null == $offset ? 0 : $offset;
    $limit = $paramFetcher->get('limit');

    return $this->container->get('user.handler')->all($limit, $offset);
}
对于帖子我不知道怎么做,我的代码如下,我想在url中添加用户属性,怎么做

         /**
* @View(template = "UserBundle:User:register.html.twig", statusCode = Codes::HTTP_BAD_REQUEST, templateVar = "form")
*
* @param Request $request the request object
* POST Route annotation.
* @Post("/users/")
* @return FormTypeInterface|View
*/
public function postUserAction(Request $request)
{
    try {
        $newUser = $this->get('user.handler')->post($request);

        $routeOptions = array(
                'id' => $newUser->getId(),
                '_format' => $request->get('_format')
        );

        return $this->routeRedirectView('get_user', $routeOptions, Codes::HTTP_CREATED);
    } catch (InvalidFormException $exception) {

        return $exception->getForm();
    }
}

您可以从请求中获取这些参数:

/**
* @View(template = "UserBundle:User:register.html.twig", statusCode = Codes::HTTP_BAD_REQUEST, templateVar = "form")
*
* @param Request $request the request object
* POST Route annotation.
* @Route("/user/{name}/{email}")
* @Method("POST")
* @return FormTypeInterface|View
*/
public function postUserAction(Request $request, $name, $email)
{
    try {

        $newUser = $this->get('user.handler')->post($request);         

        $routeOptions = array(
                'id' => $newUser->getId(),
                '_format' => $request->get('_format')
        );

        return $this->routeRedirectView('get_user', $routeOptions, Codes::HTTP_CREATED);
    } catch (InvalidFormException $exception) {

        return $exception->getForm();
    }
}

我该怎么做呢?在我的例子中,我想添加一个用户的urm属性来发布它。。像用户/fabian/fabian@gmail.com/…我已经更新了答案,您可以添加路由占位符。请阅读文档中的更多内容。此外,您还可以添加需求和默认值:@annadamchuk Good one。获取并发布扩展路由注释的FOSRestBundle,因此我想,您也可以在其中使用占位符(例如:Post(“/user/{name}/{email}”),请显示您的最终代码和异常文本?似乎您忘了提到您正在使用FOSRestBundle。对吗?是的,我使用FOSRestBundle