如何用关联编辑多个记录?

| 我有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。     

要回复问题请先登录注册