如何在Symfony2控制器中获取表单的值

9 浏览
0 Comments

如何在Symfony2控制器中获取表单的值

我在Symfony2上使用登录表单,并使用以下控制器代码:

public function loginAction(Request $request)
{
    $user = new SiteUser();
    $form = $this->createForm(new LoginType(), $user);
    if ($request->getMethod() == 'POST') {
        $form->bindRequest($request);
        $data = $form->getValues();
        // 需要在这里处理数据
    }
    return $this->render('GDSiteBundle::header.html.twig', array('form' => $form->createView()));
}

但是我收到以下警告:

Warning: array_replace_recursive() [function.array-replace-recursive]: Argument #1 is not an array in \vendor\symfony\src\Symfony\Component\Form\Form.php line 593
  500 Internal Server Error - ErrorException

有人可以帮我理解出了什么问题,并且如何修复它吗?谢谢。

更新:

twig文件如下:

{{ form_errors(form) }}

{{ form_row(form.username) }}

{% trans %}Registration{% endtrans %}

{{ form_row(form.pwd_hash) }}

{% trans %}Forgot Password ?{% endtrans %}

这是表单类型中的函数:

public function buildForm(FormBuilder $builder, array $options)
{
    $builder->add('username', 'text', array('label' => 'Username : '));
    $builder->add('pwd_hash','password', array('label' => 'Password : '));
}

这是路由:

site_user_login:

pattern: /{_locale}/login

defaults: {_controller: GDSiteBundle:SiteUser:login}

0
0 Comments

在Symfony 2(具体来说是2.3版本)中,你可以通过以下方式获取表单字段的数据:

$var = $form->get('yourformfieldname')->getData();

或者你可以获取所有发送的数据:

$data = $form->getData();

其中'$data'是一个包含表单字段值的数组。

问题原因:

在Symfony 2中,开发者可能会遇到需要在控制器中获取表单字段值的情况。

解决方法:

为了获取表单字段值,可以使用$form对象的get方法和getData方法。get方法用于获取指定字段的值,getData方法用于获取所有字段的值,并将其存储在一个数组中。

通过上述解决方法,开发者可以轻松地在Symfony 2的控制器中获取表单字段的值。这对于处理用户输入和执行后续操作非常有用。无论是获取单个字段的值还是获取所有字段的值,这些方法都能满足开发者的需求。

0
0 Comments

问题原因:无法获取Symfony2控制器中的表单值。

解决方法:使用以下代码获取表单值:

$username = $form["username"]->getData();

$password = $form["password"]->getData();

另外,确保将请求对象作为参数传递给操作,并在上面包含Request类。

0
0 Comments

问题的原因是Symfony2中如何在控制器中获取表单的值。解决方法是使用以下代码:

$data = $form->getData();

对于新版本,可以使用以下代码:

$data = $form->all();

0