Symfony表单验证实体的选定成员

时间:2013-05-08 16:04:15

标签: php symfony symfony-2.2

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

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

所以我的实体课有:姓名,电子邮件,性别,密码,城市。所有必填字段

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

的错误

1 个答案:

答案 0 :(得分: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