我在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();
// Need to do something with the data here
}
return $this->render('GDSiteBundle::header.html.twig', array('form' => $form->createView()));
}
但我得到了以下警告:
数组警告:\vendor\symfony\src\Symfony\Component\Form\Form.php ()函数.
-replace-recursive:参数#1不是\vendor\symfony\src\Symfony\Component\Form\Form.php行593500内部服务器错误中的数组- ErrorException
有没有人能帮我弄明白什么是不正确的,以及我如何修复它?谢谢。
更新: twig文件如下所示:
<div class="form">
{{ form_errors(form) }}
<form action="{{ path('site_user_login') }}" method="POST" {{ form_enctype(form) }}>
<div class="level1">
{{ form_row(form.username) }}
<a href="javascript:void(0)" id="inscription">{% trans %}Registration{% endtrans %}</a>
</div>
<div class="level2">
{{ form_row(form.pwd_hash) }}
<div class="forget_pass"><a href="#" id="frgt">{% trans %}Forgot Password ?{% endtrans %}</a></div>
</div>
<input type="submit" class="submit" name="login" value/>
<div class="clr"></div>
</form>
</div>
下面是表单类型中的函数
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}
发布于 2012-10-05 21:17:54
简单地说:
$data = $form->getData();
发布于 2012-04-06 10:23:30
以上这些对我来说都不起作用。这对我来说很有效:
$username = $form["username"]->getData();
$password = $form["password"]->getData();
我希望它能帮上忙。
发布于 2013-11-12 04:28:18
在Symfony 2(更具体地说,2.3版本)中,您可以通过以下方式获取字段的数据
$var = $form->get('yourformfieldname')->getData();
或者您可以将所有数据发送出去
$data = $form->getData();
其中'$data‘是一个包含表单域的值的数组。
https://stackoverflow.com/questions/8987418
复制相似问题