0

我正在尝试实现 uniqueEntity 功能以避免在数据库中保存两次或更多,但它似乎不起作用。

我把这个红了:http ://symfony.com/doc/current/reference/constraints/UniqueEntity.html

这是我的代码:

难道我做错了什么 ?

...

use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
/**
 * Artist
 *
 * @ORM\Table(name="artists")
 * @ORM\Entity
 * @UniqueEntity(fields = {"firstName", "lastName", "birthDate", "deathDate"})
 */
class Artist
{
    /**
     * @var integer
     *
     * @ORM\Column(name="ArtistID", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var string
     *
     * @ORM\Column(name="ArtistFirstName", type="string", length=100, nullable=true)
     * 
     */
    private $firstName;

    /**
     * @var string
     *
     * @ORM\Column(name="ArtistLastName", type="string", length=100)
     * @Assert\NotBlank()
     */
    private $lastName;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="ArtistBirthDate", type="datetime", nullable=true)
     */
    private $birthDate;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="ArtistDeathDate", type="datetime", nullable=true)
     */
    private $deathDate;

...

任何帮助都会很棒。谢谢你。

4

1 回答 1

0

经过大量测试,它可以工作!

我尝试了什么:

  • 空现金
  • 删除 {} =>@UniqueEntity({"firstName","lastName","birthDate", "deathDate"},) 之前的字段
  • 删除我所有属性的 unique=true 因为我想要多个字段而不仅仅是一个
  • 然后我再次输入“字段......”并且它有效

现在我发现最终用户并不清楚错误。

该错误始终针对第一个字段。好的,这似乎是合乎逻辑的,但是否有其他解决方案来显示错误?也许最重要的是,所有错误都将显示在那里,我更喜欢在关联字段前面看到错误。

谢谢你们。

于 2015-03-30T16:44:17.847 回答