原则 - 插入多行,只有一个 save()

2022-08-30 19:51:27

如何在 Doctrine 中将多行插入到表调用方法中?save()


答案 1

将每条记录添加到Doctrine_Collection对集合对象的调用。save()

$collection = new Doctrine_Collection('tablename');
$collection->add($record1);
$collection->add($record2);
$collection->add($record3);
$collection->add($record4);
$collection->save();

仅当所有记录都针对同一个表时,此方法才有效。否则你就不走运了。


答案 2

这是另一个解决方案,在教义1.2上进行了测试。无需保存每条记录,flush() 会自动找出所有未保存的实例并保存所有实例。

$row = new \My_Doctrine_Record();
$row->name = 'aaa';
$row->approved = 1;

/// ...

$row = new \My_Doctrine_Record();
$row->name = 'val';
$row->approved = 'bbb';

Doctrine_Manager::connection()->flush();

推荐