1
我有以下情況:擴展DataObject類的(Doctrine實體)ContentCategory。 DataObject類具有以下函數onPrePersist:擴展功能與學說ORM註釋
/**
* @ORM\HasLifecycleCallbacks
*/
class DataObject implements InputFilterAwareInterface
{
...
/** @ORM\PrePersist */
public function onPrePersist()
{
//using Doctrine DateTime here
$this->creation_date = new \DateTime('now');
}
ContentCategory類也需要這個函數。當我把這個函數放在ContentCategory類中時,它工作得很好。有沒有一種方法可以讓ContentCategory類使用相同的函數onPrePersist(),而無需在類中定義它自己?
* @ORM\HasLifecycleCallbacks()
*/
class ContentCategory extends DataObject implements InputFilterAwareInterface
{
...
}
的原因,得到的對象onPrePersist功能,是設置當該對象被創建日期時間或者是延伸DataObject類的任何其他對象/實體。
- <編輯> -
我現在添加了一個構造方法ContentCategory過程是這樣的:
public function __construct() {
parent::onPrePersist();
}
這樣學說是建立一個新的實體時,執行相應的功能onPersist 。另一種情況是當一個實體正在更新時,與教條。我想設置一個Modified_date。在這種情況下,DataObject類中會有這樣的函數。
/**
* @ORM\HasLifecycleCallbacks
*/
class DataObject implements InputFilterAwareInterface
{
...
/**
* @ORM\PreUpdate
*/
public function onUpdate()
{
$this->last_modified_date = new \DateTime('now');
}
教義ORM註解(更新前)已加入,將確保該功能(上圖)將在某個對象的更新語句excuted。問題是,如何在擴展數據對象的對象中調用這些函數
謝謝,我不知道Doctrine ORM註釋:MappedSuperclass。有了這個註解,它不會爲超級(父級)類創建一個實體。非常感謝,打開我的眼睛! – Kwido 2013-04-09 14:12:13