CakePHP hasAndBelongsToMany(HABTM)删除连接记录

Jas*_*ary 4 cakephp has-and-belongs-to-many

我在用户和位置之间有HABTM关系.两种模型都有适当的$hasAndBelongsToMany变量集.

当我管理用户位置时,我想删除用户和位置之间的关联,而不是位置.显然,此位置可能属于其他用户.我希望以下代码只删除提供HABTM关联的连接表记录,但它删除了两个记录.

$this->Weather->deleteAll(array('Weather.id' => $this->data['weather_ids'], false);
Run Code Online (Sandbox Code Playgroud)

但是,我是CakePHP的新手,所以我确信我错过了一些东西.我尝试将cascade设置为false并使用User,User-> Weather,Weather-> User更改Model订单.没运气.

在此先感谢您的帮助.

dec*_*eze 7

不太确定Weather与你的模型有什么关系,所以我会选择传统的名字,LocationsUser就是加入表.这应删除具有id的用户与$id任何位置之间的所有关联:

$this->User->LocationsUser->deleteAll(array('LocationsUser.user_id' => $id), false);
Run Code Online (Sandbox Code Playgroud)

另请注意,您在代码段中缺少结束括号.