CakePHP保存多行

CakePHP保存多行,cakephp,cakephp-2.0,Cakephp,Cakephp 2.0,我使用两种模型“用户”和“用户图像”。。在中,我将把多行保存到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_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'));

那么如何保存多行..

请参阅cakephp的文档有一个方法say saveAll()

如果涉及更多模型,则应指定每个字段的模型。 此外,还需要为每个记录指定相关字段(用户id)

试试这个:

echo $this->Form->input('UserImage.0.user_id');
echo $this->Form->input('UserImage.1.user_id');
此外,还可以使用此选项保存多个记录和多个模型:

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

您可以使用这个one saveMany()将每个图像作为新记录插入。我用同样的方法来解决我的问题。在的答案中,一切看起来都很好,但只需将saveAll()更改为saveMany()


从cakephp 2.x的文档中:

要保存单个模型的多个记录,$data需要是一个数字索引的记录数组,如下所示:

    $data = array(
        array('title' => 'title 1'),
        array('title' => 'title 2'),
    );
$this->saveMany($data);
请注意,我们传递的是数字索引,而不是通常包含项目键的$data。保存同一模型的多个记录时,记录数组应仅以数字形式编制索引,而不使用模型键

也可接受以下格式的数据:

    $data = array(
        array('Article' => array('title' => 'title 1')),
        array('Article' => array('title' => 'title 2')),
    );
  $this->saveMany($data);
我试过第一个,效果很好


HTH.

在任何人提供帮助之前,您可能需要发布您的模型。还有,你试过什么?
    $data = array(
        array('Article' => array('title' => 'title 1')),
        array('Article' => array('title' => 'title 2')),
    );
  $this->saveMany($data);