我是symfony的新手。在其他语言中,比如java和其他语言,我可以使用request.getParameter('parmeter name')
来获取值。
我们还可以用symfony2做类似的事情吗?
我看过一些例子,但没有一个对我有效。假设我有一个名为用户名为的表单域。在表单操作中,我尝试使用如下内容:
$request = $this->getRequest();
$username= $request->request->get('username');
我也试过
$username = $request->getParameter('username');
和
$username=$request->request->getParameter('username');
但是working.However下面的选项都不能很好地工作:
foreach($request->request->all() as $req){
print_r($req['username']);
}
在使用getParameter()
方法时,我哪里做错了?任何帮助都将不胜感激。
发布于 2012-03-20 22:08:52
命名并不是那么直观:
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') has been deprecated in 5.4,从6.0开始将是私有的。很长一段时间以来,它的使用一直不被鼓励。
发布于 2012-04-06 10:27:40
我做得更简单:
use Symfony\Component\HttpFoundation\Request;
public function updateAction(Request $request)
{
$foo = $request->get('foo');
$bar = $request->get('bar');
}
另一种选择是在动作函数定义中引入参数:
use Symfony\Component\HttpFoundation\Request;
public function updateAction(Request $request, $foo, $bar)
{
echo $foo;
echo $bar;
}
然后,假设您在routing.yml文件中将{foo}和{bar}定义为URL模式的一部分:
acme_myurl:
pattern: /acme/news/{foo}/{bar}
defaults: { _controller: AcmeBundle:Default:getnews }
发布于 2012-03-21 19:06:55
您可以使用以下代码来获取表单字段值
use Symfony\Component\HttpFoundation\Request;
public function updateAction(Request $request)
{
// retrieve GET and POST variables respectively
$request->query->get('foo');
$request->request->get('bar', 'default value if bar does not exist');
}
或者,也可以使用以下命令以数组形式获取所有表单值
$request->request->all()
https://stackoverflow.com/questions/9784930
复制相似问题