Symfony2 $ request-> query-> get()返回null值

时间:2013-06-24 11:21:27

标签: symfony-2.3

我是Symfony2的新手。我正在理解这个框架。 我尝试使用Symfony2访问我的请求的get参数。 但是当我像

那样访问它时它返回null
$name = $request->query->get('name');
echo $name;

我的控制器代码是

namespace abc\myBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Response;

use Symfony\Component\HttpFoundation\Request;

 public function getnameAction()
{

    $request = $this->get('request');
    echo $request->getMethod();

    $name = $request->query->get('name');
    echo $name. "---";

}

我的路由文件如下:

abcmy_newpage:
    pattern:  /new/{name}
    defaults: { _controller: abcmyBundle:new:getname }

当我运行网址

http://dashboardsmf.iiit.ac.in/web/app_dev.php/new/India

我得到方法名称     “得到” 对应于echo语句“echo $ request-> getMethod();”。

但我得到echo语句的null /“”空值     echo $ name。 “---”;

我不知道我错在哪里。 请帮帮我。谢谢。

1 个答案:

答案 0 :(得分:4)

尝试将您的操作更改为:

public function getnameAction($name) {
    echo $name;
}

Symfony将路由文件中定义的参数绑定到action方法中的参数名称(有关详细信息,请参阅Symfony book chapter on controller parameters)。

如果您想使用$request->query获取参数,则应按照以下方式传递:http://http://dashboardsmf.iiit.ac.in/web/app_dev.php/new?name=India