我对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 indexAction(Request $request, $id) {

    $post = $request->request->all();

    $request->request->get('username');

}

谢谢,你也可以使用上面的代码

其他回答

public function indexAction(Request $request)
{
   $data = $request->get('corresponding_arg');
   // this also works
   $data1 = $request->query->get('corresponding_arg1');
}
use Symfony\Component\HttpFoundation\Request;

public function indexAction(Request $request, $id) {

    $post = $request->request->all();

    $request->request->get('username');

}

谢谢,你也可以使用上面的代码

试试这个,很管用

$this->request = $this->container->get('request_stack')->getCurrentRequest();

问候

$request = Request::createFromGlobals();
$getParameter = $request->get('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 }