gpt4 book ai didi

CakePHP 3.x : saving multiple records

转载 作者:行者123 更新时间:2023-12-04 14:11:37 24 4
gpt4 key购买 nike

我读过 Converting Multiple Records 。现在我试图从一个表单中一次保存多张照片。

和:

debug($this->request->data);

我有这个:
[
(int) 1 => [
'filename' => '25483_106728809362869_5795827_n.jpg',
'description' => '',
'album_id' => '2'
],
(int) 3 => [
'filename' => '44569_193398817463220_816845208_n.jpg',
'description' => '',
'album_id' => '1'
]
]

好像没问题。

Bake 为我创建了这个操作方法:
public function add() {
$photo = $this->Photos->newEntity();

if($this->request->is('post')) {
$photo = $this->Photos->patchEntity($photo, $this->request->data);

if($this->Photos->save($photo)) {
return $this->redirect(['action' => 'index']);
}
}

$this->set(compact('photo'));
}

但是 CakeBook 没有很好地解释如何进行。我觉得我必须使用 newEntities()patchEntities() ,但我不太明白该怎么做。

例如:为什么 newEntity() 方法可以接受 NULL,而 newEntities() 方法必须要一个参数?? save() 方法一次只接受一个实体?那么,我必须为每个实体循环保存吗?

我可以举个小例子吗?谢谢。

最佳答案

假设您的数据格式正确,它应该像这样简单:

$photos = $this->Photos->newEntities($this->request->data());

foreach ($photos as $photo) {
$this->Photos->save($photo);
}
newEntity()可以接受空值,因为在没有数据的情况下调用 newEntity 会创建一个空白实体,您可以向其中添加数据,以防您不想传入请求数据。例如:
$photo = $this->Photos->newEntity();
$photo->description = 'Cool!';
$photo->filename = 'example.jpg';

$this->Photos->save($photo);
newEntities()但是,如果要创建多个实体,则需要多个数据或至少一个数据数组。

关于CakePHP 3.x : saving multiple records,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30041091/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com