Validation Symfony Uniquentity字段-即使设置了字段也保存

Validation Symfony Uniquentity字段-即使设置了字段也保存,validation,unique-constraint,symfony-2.6,Validation,Unique Constraint,Symfony 2.6,我试图实现Uniquentity功能,以避免在DB中保存两次或更多,但它似乎不起作用 我对此表示: 这是我的密码: 我做错什么了吗 ... use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity; /** * Artist * * @ORM\Table(name="artists") * @ORM\Entity * @UniqueEntity(fields = {"firstName", "lastName", "

我试图实现Uniquentity功能,以避免在DB中保存两次或更多,但它似乎不起作用

我对此表示:

这是我的密码:

我做错什么了吗

...

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;

...

任何帮助都会很好。谢谢。

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

我尝试的是:

  • 空现金
  • 删除{}=>@uniquentity({“firstName”、“lastName”、“birthDate”、“deathDate”})之前的字段
  • remove unique=适用于我的所有属性,因为我需要多个 字段,而不仅仅是一个
  • 然后我又把“字段…”放了一遍 工作
现在我发现最终用户不清楚错误

错误始终指向第一个字段。好的,这似乎是合乎逻辑的,但是否有其他解决方案来显示错误?也许在上面,但所有的错误都会显示在那里,我更喜欢在associate字段前面看到错误


谢谢大家。

每当我遇到这样的问题时,几乎总是因为我的实体的旧版本缓存在APC/u中。如果清除APC缓存会发生什么?(重新启动Apache将完成此操作。)