2013-02-17 58 views
0

许多habtm协会我有User模型和Speciality模型。 Speciality HABTM User保存在一个查询

鉴于speciality_id和数组user_id我想添加许多用户到给定的专业。到目前为止,我尝试:

foreach($users as $user_id) { 
    $data[] = array(
     'Speciality' => array('id' => $this->Speciality->id), 
     'User' => array('id' => $user_id), 
    ); 
} 
if(!empty($data)) { 
    $this->Speciality->saveAll($data); 
} 

但在specialities_users表仅保存一行,并非所有的关联......我的目标是能够achived大插入到强制表specialities_users与(speciality_id,USER_ID)对,但我想在Cake中实现这一点。

+1

你总是可以创造的specialties_users表(SpecialtiesUser)的模型,并插入使用该模型的数据,虽然也有其他的选择,这将可能是最好最有效的方法如果你需要插入一个长列表:) – thaJeztah 2013-02-17 17:00:42

+0

可以通过寻找'hasManyThrough'找到更多关于@thaJeztah在说什么的细节 - 我同意他/他 – Dave 2013-02-17 20:30:05

回答

0

看看我对这个问题的回答,基本上是一回事。

你必须创建数组(不创建它会更新),检查它是否已经在数据库中 - 如果没有,保存它。

看看这里:

Cakephp save Session to db after login