使用saveAll()
在CakePHP中保存多条记录,我可以将它们成功保存在表格中。但是在检索那些已保存行的ID时会出现问题。 LastInsertID()
此处仅返回一个最后一个ID。如何使用saveAll()
获取我插入的所有最后插入的ID?
答案 0 :(得分:25)
afterSave 函数,因此您可以执行以下操作: 在你的AppModel
中
class AppModel extends Model {
var $inserted_ids = array();
function afterSave($created) {
if($created) {
$this->inserted_ids[] = $this->getInsertID();
}
return true;
}
}
您可以将此代码放入任何模型中,它应该可以正常工作。然后在控制器中的saveAll之后返回ID,你会这样做:
if($this->Post->saveAll($posts)) {
$post_ids=$this->Post->inserted_ids; //contains insert_ids
}
希望有所帮助