Symfony2:如何避免数据库中已经存在的重复实体


Symfony2: How to avoid duplicate entities that already exist in the database?

我有两种形式的实体"Student"answers"Parents",一种嵌入另一种是Symfony2。我需要将两个实体的数据存储在数据库的不同表中,当一个新学生和他的父母也添加时。但我需要父母在数据库中不重复,所以在添加之前必须检查是否没有,只在这种情况下添加。我不知道如何在Symfoy2中做到这一点。更多信息是我问的另一个问题。

看看这里的另一个问题

我希望有人能帮助我,因为我找不到解决这个问题的办法。

要使列具有唯一条目,必须使用UniqueEntity Validation约束Docs

验证条令实体中的特定字段是唯一的。例如,这通常用于防止新用户使用系统中已经存在的电子邮件地址进行注册。

在实体名称上方添加@UniqueEntity("parent"),在要成为唯一的字段上添加unique=true

形成文件

// src/AppBundle/Entity/Author.php
namespace AppBundle'Entity;
use Symfony'Component'Validator'Constraints as Assert;
use Doctrine'ORM'Mapping as ORM;
// DON'T forget this use statement!!!
use Symfony'Bridge'Doctrine'Validator'Constraints'UniqueEntity;
/**
 * @ORM'Entity
 * @UniqueEntity("email")
 */
class Author
{
    /**
     * @var string $email
     *
     * @ORM'Column(name="email", type="string", length=255, unique=true)
     * @Assert'Email()
     */
    protected $email;
    // ...
}