我是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。 “---”;
我不知道我错在哪里。 请帮帮我。谢谢。
答案 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
。