【问题标题】:CakePHP: HABTM not performing join properly on habtmDelete callCakePHP:HABTM 在 habtmDelete 调用中未正确执行连接
【发布时间】:2023-03-25 05:27:01
【问题描述】:

我们正在从 Cake 1.2 升级到 1.3.8,并使用 ExtendedAssociations 行为。

我们遇到的一个问题是我们的 Store 模型,它通过 stores_modulesModule 有 HABTM 关系。 p>

检索数据一切正常,但迁移到 1.3.8 的一个问题似乎是,当我们要从 Store 中删除所有 Modules 时 - 在商店模型

$this->habtmDeleteAll('Module', $this->id);

问题在于这会产生以下 SQL 查询(因为它首先选择所有 stores_modules,以查看要删除的内容)

选择StoresModule.module_id FROM stores_modules AS StoresModule WHERE StoresModule.store_id = 1 AND Module.system_default = 0

_

2011-03-29 18:27:46 警告:警告(512):SQL 错误:1054:[/usr/lib/cakephp_1.3.8/cake/ 中的“where 子句”中的未知列“Module.system_default” libs/model/datasources/dbo_source.php,第 684 行]

看来问题是上面的 SQL 语句没有将 JOIN 添加到 modules 表中。因此它不能正常Module.system_default

在这方面的任何帮助都会很棒,这真的让我很难过:)

克里斯。

【问题讨论】:

  • 1.2->1.3.8,也许有一些更新日志?

标签: php cakephp has-and-belongs-to-many


【解决方案1】:

我不确定我是否理解,但您似乎没有正确调用您的模型。如果您需要删除所有关联的模型记录,您可能会这样做:

$this->Store->Modules->deleteAll(array('Store.id' => $id), true, false);

未经测试!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-09
    • 2014-05-21
    • 2014-03-13
    • 2019-11-19
    • 2013-11-07
    • 1970-01-01
    • 2014-07-04
    相关资源
    最近更新 更多