2015-11-04 49 views
0

我已經定義在YAML lifecycleCallbacks如下:主義lifecycleCallbacks奇怪的行爲

lifecycleCallbacks: 
    prePersist: [setCreatedAtValue] 
    preUpdate: [setUpdatedAtValue] 

的與各自的功能上面已經生成的實體如下:

/** 
* @ORM\PrePersist 
*/ 
public function setCreatedAtValue() 
{ 
    if($this->created_at == null) 
    { 
     $this->created_at = new \DateTime(); 
    } 
} 

它看起來都很好,對不對?然而,當我嘗試打開奏鳴曲管理頁面,我得到以下錯誤

[Semantical Error] The annotation "@ORM\PrePersist" in method AppBundle\Entity\Article::setCreatedAtValue() was never imported. Did you maybe forget to add a "use" statement for this annotation? 

我從來沒有遇到過這一點,做什麼有點混亂。我使用的symfony 2.7.6,學說ORM版本2.5.1,索納塔管理2.3.7

任何幫助,將不勝感激

回答

2

既然你定義使用YAML你的回調,你鴕鳥政策需要定義它們再次使用註釋。只需在該函數前用@ORM\PrePersist塊刪除註釋,一切都會好起來的。

如果您想使用註釋來定義您的教義屬性,您需要先導入它們,然後才能使用它們。要做到這一點,你需要在你的文件的開頭加入這一行:

use Doctrine\ORM\Mapping as ORM; 
+0

由於它的工作,我通常只是靠主義產生的實體和從未有過問題,到現在爲止。看起來我需要密切關注更改日誌。 –