使用 FOSRestBundle 在 Symfony 中编写 GET 路由

Write GET route in Symfony with FOSRestBundle

我有功能

/**
 * My function
 *
 * @FOS\View()
 * @FOS\Get("/myfunction/?param1={p1}&param2={p2}&paramn={pn}")
 *
 * @param integer $param1
 * @param integer $param2
 * @param integer $paramn
 * @return mixed
 */
public function getMyFunction($param1, $param2, $paramn)
{
    return new Response($param1. ' ' . $param1. ' ' . $paramn);
}

但是当我调用 http://host/myfunction/?param1=1&param1=2&paramn=3 时不起作用。

函数定义有什么问题?


更新:新功能

 /**
 * My function
 *
 * @FOS\View()
 * @FOS\Get("/myfunction/")
 *
 * Request $request
 * @return mixed
 */
public function getMyFunction(Request $request)
{
    $requestParams = $request->request->all();

    return new Response($requestParams['param1']);
}

而且,现在我调用 http://host/myfunctin/?param1=1,但仍然不起作用。

错误:"Notice: Undefined index: param1"

获取参数请求不好?

谢谢!

您必须从路由中删除查询字符串参数。

要获取它们,您必须在函数签名中注入一个 Request 对象,然后使用 $request->get('parametername') 进行检索。