我正在使用两个模型'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'));
然后如何保存多行..
答案 0 :(得分:3)
如果涉及更多模型,则应指定每个字段的模型。 此外,您需要为每个记录指定相关字段(user_id)。
试试这个:
echo $this->Form->input('UserImage.0.user_id');
echo $this->Form->input('UserImage.1.user_id');
另外用它来保存多个记录和多个模型:
$this->UserImage->saveAll($this->request->data);
答案 1 :(得分:1)
看看cakephp的文件有一个方法说saveAll() Cake PHP Saving Your Data
答案 2 :(得分:1)
来自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。
答案 3 :(得分:0)
你可以使用这个saveMany()将每个图像作为新记录插入。我用同样的方法来解决我的问题。在paul.ago的答案中,每件事情都很好看,但只需将saveAll()更改为saveMany()
$this->UserImage->saveMany($this->request->data);