2013-05-08 59 views
0

我使用symfony表单来验证登录数据,因此我将它与实体类(其验证已为所有成员定义)绑定,我需要表单才验证电子邮件和密码部分。所以在表单类中,我不会将电子邮件和密码添加到表单中。但是,提交数据时,它仍然验证它们,并在表格顶部显示错误Symfony表单验证实体的选定成员

如何在不更改实体类的情况下验证其他成员(城市,性别等)。

所以有我的实体类与:姓名,电子邮件,性别,密码,城市。所有领域需要

用电子邮件和密码登录表单。 我仍然得到错误,其他两个

回答

2

使用验证组...

实体类:

// src/Acme/BlogBundle/Entity/User.php 
namespace Acme\BlogBundle\Entity; 

use Symfony\Component\Security\Core\User\UserInterface; 
use Symfony\Component\Validator\Constraints as Assert; 

class User implements UserInterface 
{ 
    /** 
    * @Assert\Email(groups={"registration"}) 
    */ 
    private $email; 

    /** 
    * @Assert\NotBlank(groups={"registration"}) 
    * @Assert\Length(min=7, groups={"registration"}) 
    */ 
    private $password; 

    /** 
    * @Assert\Length(min = "2") 
    */ 
    private $city; 
} 

然后,当你创建你的表格:

$form = $this->createFormBuilder($users, array(
    'validation_groups' => array('registration'), 
))->add(...); 

这则只验证emailpassword字段。在确认团组

文档是herehere

+0

这工作,虽然我用了不同的方法。我手动添加了验证器(如Zend_Form),并获得了一个数组而不是实体,并使用它来检查凭据。 – 2013-05-09 01:47:33