首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cakephp3如何批量保存或更新记录

Cakephp3如何批量保存或更新记录
EN

Stack Overflow用户
提问于 2018-05-06 22:31:00
回答 1查看 914关注 0票数 0

使用Cake-PHP3,我尝试批量保存或更新(即,如果记录是现有的更新,否则插入)

假设我有一个数组

代码语言:javascript
复制
$records=
[
['id'=1,'data'='data'],
['id'=2,'data'='data'],
['id'=3,'data'='data']
];

如何批量保存或更新它?

我尝试使用saveMany,但如果记录存在,它总是导致重复键错误。

代码语言:javascript
复制
$entities = $this->MyModel->newEntities($records);
$this->saveMany ($entities);

我知道有一个解决方案,将epilog与mysql结合使用“在重复更新时”

代码语言:javascript
复制
foreach ($records AS $record) {
  $query = $this->Articles->query();
  $query
    ->insert($record_fields)
    ->values($record)
    ->epilog('ON DUPLICATE KEY UPDATE field=field+1')
    ->execute();
}

但该解决方案似乎保存了每条记录本身,而不是以批量方式保存,这对我来说非常重要(大量记录)

EN

回答 1

Stack Overflow用户

发布于 2018-05-16 19:18:15

蛋糕\ORM\表::$options Cake($entities,saveMany= [])

使用此选项,您可以在cakephp3中保存多个实体。

代码语言:javascript
复制
$data = [];  // Your data
$entities = $this->MyTable->newEntities($data);
$result   = $this->MyTable->saveMany($entities);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50200810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档