0

我已经设置了模型,以便用户属于组。这两者之间存在有效的HABTM关系。

下面的代码用于使用一些演示数据填充数据库。在以下代码段之前,Groups 表已填充了一些示例组数据。

下面的代码片段有效。它将记录添加到用户表中,并且连接表 (groups_users) 也获得了正确的条目。所以基本上,HABTM 关系运作良好。

这是我的问题:如何添加与多个组的关联而不仅仅是单个关系?做一个

'组'=>数组($group1,$group2)
而不是
'组'=>$group1'
如下所述不起作用。当我使用数组时,连接表中根本没有添加任何内容。

非常感谢您的帮助!

$groups = $this->Group->find('all');
  for ($i=0; $i<=200; $i++) {                   
$groupIndex1 = rand(0, count($groups)-1);
$groupIndex2 = rand(0, count($groups)-1);

$this->User->set(
  array(
    'id'=>null,
    'name'=>'Dummy User '.$i0,
    'Group'=>$groups[$groupIndex1]
  )
);
$this->User->save();
4

1 回答 1

0

要为单个用户保存多个组,您必须hasMany在用户模型中定义关系。在您的保存代码中,它看起来像:

$groups = $this->Group->find('all');
for ($i=0; $i<=200; $i++) {                   
$groupIndex1 = rand(0, count($groups)-1);
$groupIndex2 = rand(0, count($groups)-1);
$data  = 
  array('User' => array(
                        'id'=>null, 
                        'name'=>'Dummy User '.$i0,
                       ),
        'Group'=> array($groups[$groupIndex1], $groups[$groupIndex2])
  )
);
$this->User->saveAssociated($data, array('deep' => true);

此链接可能会帮助您了解'deep' => true选项。

于 2012-07-23T11:46:00.903 回答