使用 FOSRestBundle 在 Symfony 中编写 GET 路由
Write GET route in Symfony with FOSRestBundle
我有功能
/**
* My function
*
* @FOS\View()
* @FOS\Get("/myfunction/?param1={p1}¶m2={p2}¶mn={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¶m1=2¶mn=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') 进行检索。
我有功能
/**
* My function
*
* @FOS\View()
* @FOS\Get("/myfunction/?param1={p1}¶m2={p2}¶mn={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¶m1=2¶mn=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') 进行检索。