除了两个表 - 教义和symfony

时间:2011-08-29 18:54:08

标签: php symfony1 doctrine symfony-1.4

我有两张桌子:

News:
id
title
body

NewsCopy:
id
title
body

如果我添加新的新闻我还想为表NewsCopy添加相同的所有数据吗?

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

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

我怎么能简单地做到这一点?

3 个答案:

答案 0 :(得分:1)

您可以使用现有和已填充的“新闻”记录对象的toArray()方法,并填充单独的CopyNews对象。使用现在新配置的对象,您可以使用。

进行保存

我假设学说1.2 - 我没有测试环境 - 所以没有代码:)。

您也可以使用clone()方法并设置新的表名...

所有未经测试的人 - 抱歉。

答案 1 :(得分:1)

嗯,一种可能的方法是连接到Doctrine保存机制:

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();
    }
}

有关详细说明,请参阅"Event Listeners"章节

答案 2 :(得分:0)

你能做的最好就是使用触发器