我重写了FOSUserBundle的SecurityController的renderLogin()函数,现在它生成了表单。
`
protected function renderLogin(array $data)
{
$form = $this->createFormBuilder($data)
->setAction($this->generateUrl('fos_user_security_check'))
->add('email', 'text', array(
'data' => $data['last_username'],
'required' => true,
))
->add('password', 'password', array(
'required' => true,
))
->add('remember_me', 'checkbox', array(
'required' => false,
))
->add('Login', 'submit')
->getForm();
return $this->render('FOSUserBundle:Security:login.html.twig', array(
'form' => $form->createView(),
'error' => $data['error'],
));
}
我也覆盖了模板:
{% extends "BaseBundle::layout.html.twig" %}
{% trans_default_domain 'FOSUserBundle' %}
{% block fos_user_content %}
{% if error %}
<div>{{ error.messageKey|trans(error.messageData, 'security') }}</div>
{% endif %}
{{ form(form) }}
{% endblock fos_user_content %}
但现在提交后没有任何反应,只有页面刷新。有什么不对?
HTML:
<form name="form" method="post" action="/login_check">
<div id="form">
<div class="form-group">
<label class="control-label required" for="form_email">Email</label> <input type="text" id="form_email" name="form[email]" required="required" class="form-control" /></div>
<div class="form-group">
<label class="control-label required" for="form_password">Password</label><input type="password" id="form_password" name="form[password]" required="required" class="form-control" />
</div>
<div class="form-group">
<div class="checkbox"> <label><input type="checkbox" id="form_remember_me" name="form[remember_me]" value="1" />Remember me</label>
</div>
</div>
<div class="form-group">
<button type="submit" id="form_Login" name="form[Login]" class="btn-default btn">Login</button>
</div>
<input type="hidden" id="form__token" name="form[_token]" class="form-control" value="xj9SE3uBp6BGmGVhwoeiT_GmR_zc8JE2U9Tz78Zn3hg" />
</div>
</form>
</div>