2014-09-05 113 views
0

FOSRestBundle註釋對我來說不起作用。FOSRestBundle註釋不起作用

use FOS\RestBundle\Controller\Annotations as Rest; 

// ... 

/** 
* @Rest\RequestParam(name="email") 
*/ 
public function someAction(Request $request) 
{ 
    // some code 
} 

這裏是我的配置:

fos_rest: 
    param_fetcher_listener: true 
    body_listener: true 
    format_listener: false 
    routing_loader: 
     default_format: json 
    view: 
     view_response_listener: 'force' 
     formats: 
      xml: false 
      json : true 
     default_engine: none 
     templating_formats: 
      html: true 
    access_denied_listener: 
     json: true 
    allowed_methods_listener: true 

請求這個動作忽略註釋,只是執行方法的代碼。看來應該解決這些註釋的監聽器沒有運行。有什麼建議麼?

回答

2

變化param_fetcher_listener: trueparam_fetcher_listener: force和移動代碼:

use FOS\RestBundle\Request\ParamFetcher 

/** 
* @Rest\RequestParam(name="email") 
*/ 
public function someAction(ParamFetcher $paramFetcher) { 

    $email = $paramFetcher->get('email'); 
} 

注:請求參數必須與POST傳遞

+0

我已經試過了,但沒有注射爲$電子郵件:「需要你爲「$ email」參數提供一個值。看來問題更深入,可能是在配置。 – 2014-09-05 12:42:48

+2

好像是「param_fetcher_listener:force」固定的問題。非常感謝。 – 2014-09-05 12:51:10