我对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()方法。任何帮助都将不胜感激。
我做得更简单:
use Symfony\Component\HttpFoundation\Request;
public function updateAction(Request $request)
{
$foo = $request->get('foo');
$bar = $request->get('bar');
}
另一种选择是在action函数定义中引入参数:
use Symfony\Component\HttpFoundation\Request;
public function updateAction(Request $request, $foo, $bar)
{
echo $foo;
echo $bar;
}
然后假设您在路由中定义了{foo}和{bar}作为URL模式的一部分。yml文件:
acme_myurl:
pattern: /acme/news/{foo}/{bar}
defaults: { _controller: AcmeBundle:Default:getnews }
现在$this->getRequest()方法已弃用,您需要将Request对象注入到您的控制器动作,如下所示:
public function someAction(Request $request)
之后,您可以使用以下方法之一。
如果你想从请求中获取POST数据,使用以下方法:
$request->request->get('var_name');
但是如果你想从请求中获取GET数据,请使用以下方法:
$request->query->get('var_name');