首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何获取Symfony 2中的请求参数?

如何获取Symfony 2中的请求参数?
EN

Stack Overflow用户
提问于 2012-03-20 18:23:24
回答 16查看 362.6K关注 0票数 214

我是symfony的新手。在其他语言中,比如java和其他语言,我可以使用request.getParameter('parmeter name')来获取值。

我们还可以用symfony2做类似的事情吗?

我看过一些例子,但没有一个对我有效。假设我有一个名为用户名为的表单域。在表单操作中,我尝试使用如下内容:

代码语言:javascript
复制
$request = $this->getRequest();
$username= $request->request->get('username'); 

我也试过

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

代码语言:javascript
复制
$username=$request->request->getParameter('username');

但是working.However下面的选项都不能很好地工作:

代码语言:javascript
复制
foreach($request->request->all() as $req){
    print_r($req['username']);
}

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

EN

回答 16

Stack Overflow用户

回答已采纳

发布于 2012-03-20 22:08:52

命名并不是那么直观:

代码语言:javascript
复制
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开始将是私有的。很长一段时间以来,它的使用一直不被鼓励。

票数 440
EN

Stack Overflow用户

发布于 2012-04-06 10:27:40

我做得更简单:

代码语言:javascript
复制
use Symfony\Component\HttpFoundation\Request;

public function updateAction(Request $request)
{
    $foo = $request->get('foo');
    $bar = $request->get('bar');
}

另一种选择是在动作函数定义中引入参数:

代码语言:javascript
复制
use Symfony\Component\HttpFoundation\Request;

public function updateAction(Request $request, $foo, $bar)
{
    echo $foo;
    echo $bar;
}

然后,假设您在routing.yml文件中将{foo}和{bar}定义为URL模式的一部分:

代码语言:javascript
复制
acme_myurl:
    pattern:  /acme/news/{foo}/{bar}
    defaults: { _controller: AcmeBundle:Default:getnews }
票数 34
EN

Stack Overflow用户

发布于 2012-03-21 19:06:55

您可以使用以下代码来获取表单字段值

代码语言:javascript
复制
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');
}

或者,也可以使用以下命令以数组形式获取所有表单值

代码语言:javascript
复制
$request->request->all()
票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9784930

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档