使用Cake-PHP3,我尝试批量保存或更新(即,如果记录是现有的更新,否则插入)
假设我有一个数组
$records=
[
['id'=1,'data'='data'],
['id'=2,'data'='data'],
['id'=3,'data'='data']
];如何批量保存或更新它?
我尝试使用saveMany,但如果记录存在,它总是导致重复键错误。
$entities = $this->MyModel->newEntities($records);
$this->saveMany ($entities);我知道有一个解决方案,将epilog与mysql结合使用“在重复更新时”
foreach ($records AS $record) {
$query = $this->Articles->query();
$query
->insert($record_fields)
->values($record)
->epilog('ON DUPLICATE KEY UPDATE field=field+1')
->execute();
}但该解决方案似乎保存了每条记录本身,而不是以批量方式保存,这对我来说非常重要(大量记录)
发布于 2018-05-16 19:18:15
蛋糕\ORM\表::$options Cake($entities,saveMany= [])
使用此选项,您可以在cakephp3中保存多个实体。
$data = []; // Your data
$entities = $this->MyTable->newEntities($data);
$result = $this->MyTable->saveMany($entities);https://stackoverflow.com/questions/50200810
复制相似问题