如何在 API symfony2 中的 GET 请求中传递多个参数?

How to pass multiple parameter in a GET request inside a API symfony2?

我正在使用 FOSRestBundle,我是 Symfony 的新手。

我一直在关注我看到的一些示例,但我不能在请求中添加多个参数。

例如

/**
     *  
     * @param  string $id Identifier
     * @return [type]     [description]
     *
     * @ApiDoc()
     */
    public function getProductsAction($id)
    {
        return myfunction($id);
    }

工作正常,但如果我想做这样的变化:

 /**
     *  
     * @param  string $id Identifier
     * @return [type]     [description]
     *
     * @ApiDoc()
     */
    public function getProductsAction($id, $month)
    {
        return myfunction($id, $month);
    }

没用。它仅标识 $id

有什么我不知道的限制吗?或者除了我所做的简单修改之外的一些额外配置?

写的时候

/**
 *  
 * @param  string $id Identifier
 * @return [type]     [description]
 *
 * @ApiDoc()
 */
public function getProductsAction($id)
{
    return myfunction($id);
}

相当于

use FOS\RestBundle\Controller\Annotations\Get;

/**
 * @Get("/products/{id}")
 * @param  string $id Identifier
 * @return [type]     [description]
 *
 * @ApiDoc()
 */
public function getProductsAction($id)
{
    return myfunction($id);
}

Symfony 自动映射路由和参数。

但是当你写的时候

/**
 *  
 * @param  string $id Identifier
 * @return [type]     [description]
 *
 * @ApiDoc()
 */
public function getProductsAction($id, $month)
{
    return myfunction($id, $month);
}

Symfoy 不知道如何处理您的 $month 参数,您需要告诉它

use FOS\RestBundle\Controller\Annotations\Get;

/**
 * @Get("/products/{id}/{month}")
 * @param  string $id Identifier
 * @return [type]     [description]
 *
 * @ApiDoc()
 */
public function getProductsAction($id, $month)
{
    return myfunction($id, $month);
}