CakePHP中保存多行(CakePHP save multiple rows)

2019-09-16 22:32发布

我使用两种型号的“用户”和“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'));

那么如何保存多行..

Answer 1:

如果你有参与更多的车型,您应该指定每个字段的模型。 此外,您还需要指定每条记录的相关领域(USER_ID)。

尝试这个:

echo $this->Form->input('UserImage.0.user_id');
echo $this->Form->input('UserImage.1.user_id');

加上使用保存多个记录和多个模型:

$this->UserImage->saveAll($this->request->data);


Answer 2:

见CakePHP的文件有一种方法说白水() 蛋糕PHP保存数据



Answer 3:

从CakePHP的2.x中的文档:

为了节省单一型号的多个记录,$数据需要的是这样记录的数字索引数组:

    $data = array(
        array('title' => 'title 1'),
        array('title' => 'title 2'),
    );
$this->saveMany($data);

请注意,我们传递的数字指标,而不是包含该项目的关键通常$数据。 当保存同一模型的多个记录的记录阵列应该只是数字索引没有模型的关键。

另外,也可以以具有以下列格式中的数据:

    $data = array(
        array('Article' => array('title' => 'title 1')),
        array('Article' => array('title' => 'title 2')),
    );
  $this->saveMany($data);

我已经尝试了第一个和它的工作很大。

HTH。



Answer 4:

你可以使用这个saveMany()来插入每个图像的新纪录。 我用同样的解决我的问题。 每一件事情看起来好吗paul.ago的答案,但只是改变白水()来saveMany()

$this->UserImage->saveMany($this->request->data);


文章来源: CakePHP save multiple rows