我有两张桌子:
News:
id
title
body
和
NewsCopy:
id
title
body
如果我添加新的新闻我还想为表NewsCopy添加相同的所有数据吗?
class News extends BaseNews
{
public function save(Doctrine_Connection $conn = null)
{
return parent::save($conn);
}
}
我怎么能简单地做到这一点?
答案 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)
你能做的最好就是使用触发器