0

我有一张tansaction桌子,有一个名为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;

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

4

1 回答 1

1

$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),        
));
于 2015-12-26T08:42:27.727 回答