2016-11-25 7 views
0

Я использую FOSRestBundle, и я довольно новичок в Symfony.Как передать несколько параметров в запросе GET внутри API symfony2?

Я следил за примерами, которые я видел, но я не могу добавить в запрос несколько параметров.

Например

/** 
    * 
    * @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 является аннотацией от того, какой компонент симфони? Я получаю заявление не импортированного использования. –

+0

@MatheusOliveira это аннотация из FOSRestBundle, я включил его в ответ :) – lolmx