CakePHP 2.x:如何在控制器中获取最后插入的单个字段?

CakePHP 2.x : How to get last insert single field in controller?

我有一个 tansaction table 和一个名为 balance 的字段。在这里,我试图用新数据更新此字段,但插入新事务。所以我需要控制器中的平衡字段。所以,我尝试了下面的代码。

$client_id = $this->request->data['Transaction']['user_id'];
$new = $this->Transaction->find('first', array(
    'conditions'=>array('Transaction.user_id'=> $client_id),
    'fields'=>array('Transaction.balance')
));

$this->request->data['Transaction']['balance'] =$this->request->data['Transaction']['debit_money']-$this->request->data['Transaction']['credit_money']+new;

但是这里我没有得到旧的余额数据。

$new 是一个关联数组。您正在将一个数组添加到一个数字。

尝试以下操作:

$client_id = $this->request->data['Transaction']['user_id'];
$new = $this->Transaction->find('first', array(
    'conditions'=>array('Transaction.user_id'=> $client_id),
    'fields'=>array('Transaction.balance')
));

$this->request->data['Transaction']['balance'] = 
    $this->request->data['Transaction']['debit_money']
    - $this->request->data['Transaction']['credit_money']
    + $new['Transaction']['balance'];

或者,这也应该有效:

$client_id = $this->request->data['Transaction']['user_id'];

$this->request->data['Transaction']['balance'] = 
    $this->request->data['Transaction']['debit_money']
    - $this->request->data['Transaction']['credit_money']
    + $this->Transaction->field('balance',array('Transaction.user_id'=> $client_id),        
));