3

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

4 回答 4

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);
于 2012-05-08T09:55:24.470 回答
1

见 cakephp 的文档有一个方法说 saveAll() Cake PHP 保存你的数据

于 2012-05-01T10:54:42.820 回答
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。

于 2016-06-16T10:54:06.277 回答
0

您可以使用这个 saveMany() 将每个图像作为新记录插入。我用同样的方法来解决我的问题。paul.ago的回答中的每一件事都很好,但只需将 saveAll() 更改为 saveMany()

$this->UserImage->saveMany($this->request->data);
于 2015-03-30T09:05:11.433 回答