2015-06-30 61 views
0

我在應該使用id計算的實體中有字段。我試圖用這種方法解決這個問題:基於保存前的實體ID更新字段

/** 
* Resources 
* 
* @ORM\Table(name="resources") 
* @ORM\Entity(repositoryClass="MyTask\Core\Repository\ResourcesRepository") 
* @ORM\HasLifecycleCallbacks() 
*/ 
class Resources extends BaseEntity 
{ 
... 


    /** 
    * @return $this 
    * @ORM\PostPersist() 
    */ 
    public function generateHash() 
    { 
     $this->setHash(substr(md5($this->getId() . $this->getName()), 0, 8)); 
     return $this; 
    } 

但是不計算散列字段並保持爲空。你能告訴我如何解決這個問題嗎?

+0

您是否包含了類的@HasLifecycleCallbacks註釋? – dk80

+0

我加了HasLifecycleCallbacks,並且使用了斷點檢查了這個方法被執行了。 – Oleg

+0

PrePersist之前使用過,但在這種情況下id爲null,並且散列不是唯一的,但可以訪問PrePersist ID。 – Oleg

回答

0

我只是使用php uniqid而不是使用實體的id,因爲我無法使用事件來解決它。