0

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

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

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

带有电子邮件和密码的登录表单。我仍然收到其他两个错误

4

1 回答 1

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(...);

这只会验证emailandpassword字段。

关于验证组的文档在这里这里

于 2013-05-08T16:30:15.463 回答