4

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

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

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

但是,我是 CakePHP 的新手,所以我确信我遗漏了一些东西。我尝试将级联设置为 false,并使用用户、用户->天气、天气->用户更改模型顺序。没运气。

提前感谢您的帮助。

4

1 回答 1

7

不太确定如何Weather与您的模型相关,所以我将使用传统名称,LocationsUser即连接表。这应该删除具有 id 的用户与$id任何位置之间的所有关联:

$this->User->LocationsUser->deleteAll(array('LocationsUser.user_id' => $id), false);

另请注意,您的代码片段中缺少右括号。

于 2010-05-15T05:00:54.847 回答