2015-03-19 100 views
0

我試圖實現uniqueEntity功能,以避免在數據庫中保存兩次或更多,但它似乎不工作。Symfony 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; 

... 

任何幫助將是偉大的。謝謝。

+0

每當我遇到這樣的問題時,幾乎總是因爲我的實體的舊版本被緩存在APC/u中。如果清除APC緩存會發生什麼情況? (重新啓動Apache將執行此操作。) – nurikabe 2015-03-21 11:58:09

回答

0

經過大量的測試,它的工作原理!

我的嘗試:

  • 空現金
  • 刪除之前{} => @ UniqueEntity({ 「名字」, 「姓氏」, 「生日」, 「deathDate」})
  • 領域
  • 刪除唯一= true來我所有的屬性,因爲我想多 領域,不僅是
  • 後來我把「域」再次和它 工作

現在我發現最終用戶的錯誤並不清楚。

該錯誤總是針對第一個字段。好吧,這似乎是合乎邏輯的,但有沒有其他解決方案來顯示錯誤?也許最重要的是,所有錯誤都會顯示在那裏,我更喜歡在關聯字段前面看到錯誤。

謝謝大家。

相關問題