2011-08-29 36 views
0

我有兩個表:節省了兩個表 - 教義和symfony的

News: 
id 
title 
body 

NewsCopy: 
id 
title 
body 

如果我增加新的消息,我還想添加此相同的所有數據表NewsCopy?

class News extends BaseNews 
{ 
    public function save(Doctrine_Connection $conn = null) 
    { 

     return parent::save($conn); 
    } 
} 

我該如何做到這一點?

+1

"Event Listeners"章你能解釋一下這個複製表的目的是什麼? – Gerry

回答

1

嗯,一種可能的方式是掛鉤到學說節能機制:

class News{ 
    //..other declarations// 

    //executed after Save 
    public function postSave(){ 
     $newsCopy = new NewsCopy(); 
     //set the parameters manually 
     $newsCopy->id = $this->id; 
     $newsCopy->title = $this->title; 
     $newsCopy->body = $this->body; 

     //OR, even better, create a "cast constructor" the same idea 
     //$newsCopy = new NewsCopy($this); 

     $newsCopy->save(); 
    } 
} 

查看更詳細的解釋

+0

該代碼在更新現有新聞時會觸發異常。 – Gerry

0

你能做的最好是使用觸發器

+0

我如何使用教義? –

1

您可以利用現有並填充「新聞報」記錄對象的指定者()方法,並形成一個獨立的CopyNews對象。使用現在新配置的對象,您可以使用保存。

我假設教條1.2 - 我沒有測試環境 - 所以沒有代碼:)。

你也許還與clone()方法播放和設置新的表名...

所有未經檢驗的 - 對不起。