0

我正在使用 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

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

4

1 回答 1

1

当你写

/**
 *  
 * @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);
}
于 2016-11-25T15:04:29.610 回答