使用 Symfony2 和 FOSRestBundle 我正在尝试实现 API 方法,这些方法在路由中定义了一些固定参数以及查询字符串中可能存在的一些可选参数。
例如:
http://somesite.com/api/method/a/b
http://somesite.com/api/method/c/d?x=1&y=2
根据FOSRestBundle 的文档,ParamFetcher 是使用 @QueryParam 注释的正确方法。但是,我已经定义了一个控制器,如下所示:
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use FOS\RestBundle\Controller\Annotations\Get;
use FOS\RestBundle\Controller\Annotations\View;
class MyController extends Controller
{
/**
* @Get("/method/{a}/{b}")
* @View()
*/
public function getMethodAction($a, $b)
{
// do stuff
return array('foo' => 'bar');
}
}
现在看来我需要能够访问 ParamFetcher 的实例,但我不知道如何(谷歌搜索没有太大帮助)。我从文档中知道,我可以简单地更改方法签名以合并 ParamFetcher,但是,当我这样做时,它会将参数移动到我无法拥有的查询字符串中。
有没有办法混合两者,或者我应该放弃 ParamFetcher 并直接使用 Symfomy 的内置 Request 对象检查请求?