Symfony2 - UniqueEntity无动作

时间:2016-03-04 09:52:17

标签: validation symfony doctrine entity

我有一个名为Test的实体,有两个字段:id和name。 我希望这个名字是独一无二的。

我做了什么:

use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;

...

/**
 * Company\AppBundle\Entity\Test
 *
 * @ORM\Table(name="test")
 * @UniqueEntity("name")
 * @ORM\Entity(repositoryClass="Company\AppBundle\Entity\TestRepository")
 * 
 */
class Test
{

....

/**
 * @var string$name
 *
 * @ORM\Column(name="name", type="string", length=200, nullable=false, unique=true)
 */
private $name;

....

在我的控制器中,我正在使用:

if ($form->isValid()) {
   ....

但验证通过了。我错过了什么吗?

1 个答案:

答案 0 :(得分:2)

唯一注释用于教义,它将它传递给数据库级别,并从那里抛出错误。在您尝试保存实体之前,它不会知道该实体是否存在。要在php中进行检查,您必须自己查询unique属性并检查它是否存在...