如何解决如何用关联编辑多个记录?
| 我有4张桌子: -专辑 - 图片 -标签 -images_tags(id,image_id,tag_id) 我想编辑多个记录。一切正常,直到我添加了标签表。 现在我的$ this-> data看起来像这样:(124是图像ID)Array(
[124] => Array(
[Image] => Array
(
[id] => 124
...
)
[Album] => Array
(
[id] => 2
...
)
[Tag] => Array
(
[0] => Array
(
[id] => 2
....
)
)
[125] => Array( ...
)
这是我的视图编辑文件:
<?php foreach($this->data as $key => $value) {
echo $this->Form->input(\'Image.\'.$key.\'.id\');
echo $this->Form->input(\'Image.\'.$key.\'.title\');
echo $this->Form->input(\'Image.\'.$key.\'.Tag\'); // multi select for tags
...
并在图片控制器中编辑操作:
$result = $this->Image->find(\'all\',array(
\'conditions\' => array(\'Image.id\' => $img_ids))
);
$this->data[\'Image\'] = Set::combine($result,\'{n}.Image.id\',\'{n}\');
我不知道如何将$ this-> data数组与多个编辑表单绑定。以前我只有图像数据:
Array(
[124] => Array(
[id] => 2,...
),[125] => Array(
...
);
但是现在我还需要有关标签的信息。我正在使用saveAll()函数。
解决方法
您将需要转换[Tag]索引。保存hasAndBelongsToMany的正确格式是[Tag] [Tag] => array(id1,id2,id3,...)。例如:
Array(
[124] => Array(
[Image] => Array
(
[id] => 124
...
)
[Album] => Array
(
[id] => 2
...
)
[Tag] => Array
(
[Tag] => Array
(
[0] => 2,[1] => 16,...
)
)
[125] => Array( ...
)
其中2和16是关联标签的ID。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。