我正在使用两个模型'User'和'UserImage'..我要将多行保存到user_images表中.. UserImage的视图如下..
echo $this->Form->input('UserImage.0.photo');
echo $this->Form->input('UserImage.1.photo');
echo $this->Form->input('user_id');
echo $this->Form->end(__('Submit'));
那么如何保存多行..
我正在使用两个模型'User'和'UserImage'..我要将多行保存到user_images表中.. UserImage的视图如下..
echo $this->Form->input('UserImage.0.photo');
echo $this->Form->input('UserImage.1.photo');
echo $this->Form->input('user_id');
echo $this->Form->end(__('Submit'));
那么如何保存多行..
如果涉及更多模型,则应指定每个字段的模型。此外,您需要为每条记录指定相关字段 (user_id)。
试试这个:
echo $this->Form->input('UserImage.0.user_id');
echo $this->Form->input('UserImage.1.user_id');
加上使用它来保存多个记录和多个模型:
$this->UserImage->saveAll($this->request->data);
见 cakephp 的文档有一个方法说 saveAll() Cake PHP 保存你的数据
来自 cakephp 2.x 的文档:
为了保存单个模型的多条记录,$data 需要是一个数字索引的记录数组,如下所示:
$data = array(
array('title' => 'title 1'),
array('title' => 'title 2'),
);
$this->saveMany($data);
请注意,我们传递的是数字索引,而不是通常包含 Article 键的 $data。当保存同一模型的多条记录时,记录数组应该只是在没有模型键的情况下进行数字索引。
采用以下格式的数据也是可以接受的:
$data = array(
array('Article' => array('title' => 'title 1')),
array('Article' => array('title' => 'title 2')),
);
$this->saveMany($data);
我试过第一个,效果很好。
HTH。
您可以使用这个 saveMany() 将每个图像作为新记录插入。我用同样的方法来解决我的问题。paul.ago的回答中的每一件事都很好,但只需将 saveAll() 更改为 saveMany()
$this->UserImage->saveMany($this->request->data);