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
对此操作的请求会忽略注释,只执行方法的代码。似乎应该解决这些注释的侦听器没有运行。有什么建议吗?
答案 0 :(得分:2)
将param_fetcher_listener: true
更改为param_fetcher_listener: force
并将代码移至:
use FOS\RestBundle\Request\ParamFetcher
/**
* @Rest\RequestParam(name="email")
*/
public function someAction(ParamFetcher $paramFetcher) {
$email = $paramFetcher->get('email');
}
注意:Request参数必须作为POST传递