1

我有以下表格:

Users (
    id [PK]
    address_id [FK]
)

Addresses(
    id [PK]
    users_count
)

以及以下模型关联:

Addresses $haveMany Users
Users $belongsTo Addresses (cacheCounter => true)

用户表上的address_id[FK] 允许 NULL 值。

在用户控制器中,我有 3 个功能(添加、编辑、删除),添加/编辑使用$this->Model->save()cacheCounter更新都可以,即使外键 (address_id) 中有 NULL 值。

但删除功能使用$this->Model->delete,我得到以下错误:

 UPDATE [addresses] SET [user_count] = 0 WHERE [id] IS N''

这是由于 foreign_key (address_id) 具有 NULL 值。

有什么我可以放入 cacheScope 以阻止此错误发生吗?

提前致谢。

4

1 回答 1

-1

app/lib/Cake/Model/Model.php Line 1963

I wrapped the updateAll function with:

if (!empty($keys[$foreignKey])) {

Works a treat.

于 2013-06-05T11:09:45.033 回答