-1

这是我在支付控制器中添加的功能。它写入付款表,从协议中读取,但不更新协议。为什么?

    public function add( $agreement_id = null ) {

    if ($this->request->is('post')) {
        $this->Payment->create();

        if ($this->Payment->save($this->request->data)) {                               
           $my_agreement = $this->Agreement->read(null, $agreement_id);
           $my_agreement['Agreement']['payment']=
                   $my_agreement['Agreement']['payment']+
                   $this->request->data['Payment']['payment_volume'];
           $my_agreement['Agreement']['charge']=
                   $my_agreement['Price']['total_price']-
                   $my_agreement['Agreement']['payment'];

          $data = array(  'id' => $agreement_id,
                'Agreement.payment' => $my_agreement['Agreement']['payment'],
                'Agreement.charge' => $my_agreement['Agreement']['charge']
           );

               $this->Agreement->save($data);
        return $this->redirect(array('action' => 'index'));
        } 
    }
    $agreements = $this->Payment->Agreement->find('list'); 
    $this->set('agreement_id', $agreement_id); 
    $this->set(compact('agreements'));
}
4

1 回答 1

0

代替

$data = array(  'id' => $agreement_id,
                'Agreement.payment' => $my_agreement['Agreement']['payment'],
                'Agreement.charge' => $my_agreement['Agreement']['charge']
           );

它应该是

$data = array(  'id' => $agreement_id,
                'payment' => $my_agreement['Agreement']['payment'],
                'charge' => $my_agreement['Agreement']['charge']
           );

或者

$data = array('Agreement' => array('id' => $agreement_id,
                'payment' => $my_agreement['Agreement']['payment'],
                'charge' => $my_agreement['Agreement']['charge']
           ));
于 2014-07-29T18:52:22.783 回答