Cakephp 仅更新一个表,但该表与另一个表关联

Cakephp 仅更新一个表,但该表与另一个表关联,cakephp,updates,Cakephp,Updates,我有一张主桌,顾客。此表与另外20个表关联。我正在尝试使用以下代码仅更新表cliente: $this->Cliente->updateAll(array("ec_cnpj" => $this->request->data['Cliente']['ec_cnpj'], "ec_cpf" => $this->request->data['Cliente']['ec_cpf'],

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

$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正在生成一个查询来更新所有表。如何仅更新客户表?

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

因此,相应的模型如下

$this->Cliente->unbindModel(array('hasMany' => array('table1', 'table2')));
阅读“”以更好地理解它

也许你会发现一些有用的东西,但是这些东西没有直接从cakephp中获得,你必须创建一个新函数。

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

因此,相应的模型如下

$this->Cliente->unbindModel(array('hasMany' => array('table1', 'table2')));
阅读“”以更好地理解它


也许您会发现一些有用的东西,但这些东西无法直接从cakephp中获得,您必须创建一个新函数。

非常感谢您的帮助。工作得很好!谢谢你的回答,你能更新最后一个吗,似乎已经死了。非常感谢你的帮助。工作得很好!谢谢你的回答,你能更新一下吗,好像死了