我正在使用UniqueEntity类来验证电子邮件何时用于添加新用户。这在我添加新用户时工作正常,但是当我尝试使用用户输入电子邮件和密码时返回错误,表示此电子邮件已存在。如果我删除UniqueEntity,登录工作正常。
我的代码:
namespace Demo\DBBundle\Entity;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
/**
* User
*
* @UniqueEntity("email")
*/
class User
{
/**
* @var string
*
* @ORM\Column(name="email", type="string", length=128, nullable=false)
*/
private $email;
}
public function loginAction(Request $request)
{
$user = new User();
$action = $this->generateUrl('login');
$form = $this->createForm(new UserType(), $user, array('action' => $action));
$form->handleRequest($request)
if ($form->isValid()) {
$this->redirect();
} else {
return $this->render('FrontBundle:User:login.html.twig', array(
'login' => $form->createView(),
'error' => true
));
}
}
答案 0 :(得分:1)
您应该使用验证组仅在注册阶段包含唯一验证。
见这里:http://symfony.com/doc/current/book/forms.html#book-forms-validation-groups