我有一个与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调用中的错误数据吗?
我不想删除任何用户或报告,只删除它们之间的关系。
我可以确认表名是正确的,并且变量存在并已设置。
答案 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);
。
请询问它是否对您不起作用。