CakePHP保存多行

时间:2012-05-01 10:53:04

标签: cakephp cakephp-2.0

我正在使用两个模型'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'));

然后如何保存多行..

4 个答案:

答案 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);