我已经设置了我的模型,以便用户属于组。这两者之间有一个有效的HABTM关系。
以下代码用于使用一些演示数据填充数据库。在以下代码段之前,“组”表已填充了一些样本组数据。
下面的代码段有效。它将记录添加到Users表,并且连接表(groups_users)也获得正确的条目。基本上,HABTM关系运作良好。
以下是我的问题:如何添加与多个组的关联,而不仅仅是单个关系?执行
'Group'=>array($group1, $group2)而不是下面列出的
'Group'=>$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();
答案 0 :(得分: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);
This link可能会帮助您理解'deep' => true
选项。