从HABTM表中删除关联

时间:2012-07-15 21:57:35

标签: cakephp

我有一个与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的所有行:

Bad delete query

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

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

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

1 个答案:

答案 0 :(得分:1)

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

出于安全原因,请使用第二个参数$cascade = false,并使用$this->ReportUser->unbindModel()方法取消绑定所有ReportUser模型关联。

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

请询问它是否对您不起作用。