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

原文 标签 php mysql entity-framework symfony doctrine-orm

我有两种形式的实体“学生”和“家长”,一种嵌入另一种是符号2。我需要将两个实体的数据存储在数据库的不同表中,这时一个新学生和他的父母也添加了数据。但是我需要在数据库中不复制父项,所以在添加之前必须检查是否没有,只有在这种情况下才添加。我不知道怎么用symfony2。更多信息是我问的另一个问题。
look the other question here
我希望有人能帮助我,因为我找不到解决这个问题的办法。

最佳答案

要使列具有唯一条目,必须使用唯一性验证约束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;

    // ...
}

相关文章:

php - 关于将此DISTINCT与此kode一起使用的任何想法

php - 新的谷歌recaptcha与复选框服务器端PHP

php - WordPress的西里尔文编码

javascript - 我想在当前视频结束后自动播放下一个视频[重复]

python - 在不同的列中打印数据库变量

asp.net-mvc - DropDownListFor EF5中的枚举

c# - Oracle实体框架“指定的转换无效” GetDecimal

c# - 实体框架SQL查询执行