3

我有一个用户和一个报告表,与 HABTM 关系相连。

我可以保存一个在表中创建正确记录的reports_users报表,我可以使用查看关系表$this->User->ReportsUser->..,等等。

现在我想删除 reports_users 表中的特定行,但我似乎做不到。

我尝试了以下方法:

$this->User->ReportsUser->deleteAll(array(
    'ReportsUser.report_id' => $this->data['Report']['report_id'], 
    'ReportsUser.user_id' => $this->data['Report']['user_id']
));

..但是它使用这个查询删除了所有具有给定user_id的行:

错误的删除查询

我在这里做错了什么。deleteAll 调用中的数据是否错误?

我不想删除任何用户或报告,只删除它们之间的关系。

我可以确认表名是正确的,并且变量存在并且已设置。

4

1 回答 1

1

您的代码似乎没有错误。要么你$this->data['ReportUser']['report_id']有一些问题。最好的方法是首先尝试打印您的$this->data. 并检查它是否存在?

为安全起见,使用第二个参数$cascade = false并解除所有 ReportUser 模型关联使用$this->ReportUser->unbindModel()方法的绑定。

另一个原因似乎是 $this->User->ReportUser. Try to use $this->ReportUser->deleteAll('your conditions', false);直接删除数据。

请询问它是否不适合您。

于 2012-07-16T05:20:47.757 回答