我在用户和位置之间有HABTM关系。两个模型都具有相应的$hasAndBelongsToMany
变量集。
当我管理用户位置时,我想删除用户和位置之间的关联,而不是位置。显然,此位置可能属于其他用户。我希望以下代码只删除提供HABTM关联的连接表记录,但它删除了两个记录。
$this->Weather->deleteAll(array('Weather.id' => $this->data['weather_ids'], false);
但是,我是CakePHP的新手,所以我确信我错过了一些东西。我尝试将cascade设置为false并使用User,User-> Weather,Weather-> User更改模型顺序。没有运气。
提前感谢您的帮助。
答案 0 :(得分:7)
不完全确定Weather
与您的模型有何关联,因此我将使用传统名称,LocationsUser
是加入表。这应删除ID为$id
的用户与任何位置之间的所有关联:
$this->User->LocationsUser->deleteAll(array('LocationsUser.user_id' => $id), false);
另请注意,您的代码段中缺少结束括号。