2016-11-25 68 views
0

我正在使用FOSRestBundle,而且我在Symfony中很新。如何在API symfony2中的GET請求中傳遞多個參數?

我一直在關注一些exemples我已經看到了,但我不能在請求中添加多個參數。

例如

/** 
    * 
    * @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

有我不知道有任何限制嗎?或超出我做的簡單修改的​​一些額外的配置?

回答

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); 
} 
+1

的@get是從symfony的成分註釋? 我得到一個非導入的使用聲明。 –

+0

@MatheusOliveira它是FOSRestBundle的註釋,我把它包含在答案中:) – lolmx

相關問題