我有一对多的关系,其中一个房子可以有很多图片。我拥有的模特是" House"和"图片"。我正在使用CakePHP 1.2,我可以使用这个成功上传一张图片:
echo $form->input('Picture.filename', array('type' => 'file', 'label' => __l('Image')));
在我的houses_controller.php文件中,我有这段代码来保存图片以及与其房子的相应关联:
$this->House->Picture->save($this->data['Picture']);
但我现在需要保存几张照片。我在https://book.cakephp.org/1.2/en/The-Manual/Core-Helpers/Form.html阅读了文档,根据这些信息,我试图使用它:
echo $form->input('Picture.0.filename', array('type' => 'file', 'label' => __l('Image 1'));
echo $form->input('Picture.1.filename', array('type' => 'file', 'label' => __l('Image 2'));
然后我的houses_controller.php文件有:
$this->House->Picture->saveAll($this->data['Picture']);
我看到我的照片表中保存了一条新记录,但我希望在我的表中看到两个新条目,因为我应该添加两张图片,而不仅仅是一张。关于为什么这可能不会为我保存两张照片的任何想法?谢谢。
答案 0 :(得分:0)
解决方案:
$this->Deal->Picture->save($this->data['Picture'][0]);
$this->Deal->Picture->save($this->data['Picture'][1]);
使用$this->data['Picture']
是不够的,因为数组返回了多个元素,因此我必须使用相应的索引引用每个元素,例如第一个元素为$this->data['Picture'][0]
,第二个元素为$this->data['Picture'][1]
一等等。
注意:我没有为我保存两条记录,甚至以为我使用了save()两次。但这是另一个问题。您可以在Save multiple times in Cakephp阅读相应解决方案的答案。基本上你需要在使用save()之前使用create()。