【问题标题】:Symfony uniqueEntity fields - save even if fields are setSymfony uniqueEntity 字段 - 即使设置了字段也保存
【发布时间】:2015-03-19 10:44:45
【问题描述】:

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

我红了这个: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;

...

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

【问题讨论】:

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

标签: validation unique-constraint symfony-2.6


【解决方案1】:

经过大量测试,它成功了!

我尝试了什么:

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

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

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

谢谢大家。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-07
    • 2017-07-21
    相关资源
    最近更新 更多