我对symfony很陌生。在其他语言,如java和其他我可以使用请求。getParameter('参数名')来获取值。

symfony2有类似的功能吗? 我见过一些例子,但没有一个对我有用。假设我有一个名称为用户名的表单字段。在action表单中,我尝试使用这样的东西:

$request = $this->getRequest();
$username= $request->request->get('username'); 

我也试过

$username = $request->getParameter('username');

and

$username=$request->request->getParameter('username');

但这些方法都不奏效。但是以下工作很好:

foreach($request->request->all() as $req){
    print_r($req['username']);
}

我在哪里做错了使用getParameter()方法。任何帮助都将不胜感激。


当前回答

大多数情况下,如获取查询字符串或表单参数在上面的答案中涵盖。

在处理原始数据时,比如您希望将正文中的原始JSON字符串作为参数提供给json_decode(),可以使用Request::getContent()方法。

$content = $request->getContent();

Symfony中关于HTTP请求的其他有用信息可以在HttpFoundation包的文档中找到。

其他回答

$request = Request::createFromGlobals();
$getParameter = $request->get('getParameter');

试试这个,很管用

$this->request = $this->container->get('request_stack')->getCurrentRequest();

问候

命名并不那么直观:

use Symfony\Component\HttpFoundation\Request;

public function updateAction(Request $request)
{
    // $_GET parameters
    $request->query->get('name');

    // $_POST parameters
    $request->request->get('name');

2021年11月更新:$request->get('name')在5.4中已弃用,从6.0开始将是私有的。很长一段时间以来,人们都不鼓励使用它。

大多数情况下,如获取查询字符串或表单参数在上面的答案中涵盖。

在处理原始数据时,比如您希望将正文中的原始JSON字符串作为参数提供给json_decode(),可以使用Request::getContent()方法。

$content = $request->getContent();

Symfony中关于HTTP请求的其他有用信息可以在HttpFoundation包的文档中找到。

对于symfony 4用户:

$query = $request->query->get('query');