2014-09-05 136 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