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

时间:2013-05-14 18:18:42

标签: cakephp updates

我有一张主桌,Cliente。该表与另外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正在生成一个更新所有表的查询。如何仅更新客户表?

1 个答案:

答案 0 :(得分:4)

来自the docs

  

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

所以,unbind对应的模型如

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

阅读“Creating and Destroying Associations on the Fly”以便更好地了解它。

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