2015-12-06 71 views
1

我正在使用cakephp 2.6.7。为什么saveField()没有在CakePHP 2.x中保存记录?

在型号/ ResellerAccount:

<?php 

class ResellerAccount extends AppModel { 

    var $name = "resellerAccounts";   
} 

?> 

我的表名是reseller_accounts。

在控制器:

function moneySentToreseller($id = null) { 
    if ($id) { 
     $this->loadModel('ResellerAccount'); 

     $this->ResellerAccount->id = $id; 
     $this->ResellerAccount->saveField("ResellerAccount.status", "sent"); 
     $msg = ' 
      <div class="alert alert-success"> 
       <button type="button" class="close" data-dismiss="alert">&times;</button> 
       <strong> Money send to this reseller succeesfully </strong> 
      </div>'; 
     $this->Session->setFlash($msg); 
    } 
    return $this->redirect($this->referer()); 
} 

但现场没有被更新。我的代码中发生了什么错误?

+0

我注意到你问了很多问题,在蛋糕上,你应该花点时间阅读[docs](http://book.cakephp.org/2.0/en/越来越-started.html#工具入门)。 – skywalker

回答

2

由于每documentation

使用此方法时,$字段名应该只包含字段的名称,型号和现场的不是名称。

尝试保存如下:

$this->ResellerAccount->saveField("status", "sent"); 

小心你的模型的名称:

var $name = "resellerAccounts";   

应该

public $name = "ResellerAccount"; 
+0

附注:我强烈建议不要再使用saveField。这是一个在3.x中停用的函数,因此为了更好的升级兼容性,坚持save()会更聪明。见https://github.com/dereuromark/cakephp-upgrade/wiki/Tips-Upgrading-to-CakePHP-2.x-3.x#modelsavefield – mark

+0

很高兴知道!谢谢! –