2

我有一张主桌,客户。此表与另外 20 个表相关联。我正在尝试使用以下代码仅更新表 Clientee:

$this->Cliente->updateAll(array("ec_cnpj" => $this->request->data['Cliente']['ec_cnpj'],
                                  "ec_cpf" => $this->request->data['Cliente']['ec_cpf'],
                                  "ec_rg" => $this->request->data['Cliente']['ec_rg'],
                                  "ec_rg_org_emissor" => $this->request->data['Cliente']['ec_rg'],
                                  "ec_rg_est_emissor" => $this->request->data['Cliente']['ec_rg_est_emissor'],
                                  "ec_nire" => $this->request->data['Cliente']['ec_nire']),
                            array("ec_codigo"=>$this->request->data['ec_codigo']))

但是,Cake 正在生成一个查询来更新所有表。如何仅更新客户表?

4

1 回答 1

4

文档

默认情况下,updateAll() 将自动加入支持连接的数据库的任何 belongsTo 关联。为防止这种情况,请暂时解除关联。

因此,取消绑定相应的模型,例如

$this->Cliente->unbindModel(array('hasMany' => array('table1', 'table2')));

阅读“动态创建和销毁关联”以更好地理解它。

也许你会发现这样的东西很有用,但它脱离了直接来自 cakephp 的东西,你必须创建一个新函数。

于 2013-05-14T18:24:41.770 回答