2012-07-29 30 views
5

ile GÜNCELLEŞTİRME sorgusu $this->Model->save() numaralı telefonu kullanarak kimliği değiştirdiğimde belirli bir kaydı güncelleyebiliyorum, ancak bu satırdaki tek bir alanı nasıl güncelleyebilirim?CakePHP

balance alanlı bir users tablom var. balance alanını, orada bulunanlara göre güncellemek istiyorum. Örneğin, bir kullanıcı bakiye alanında 20 $ 'a sahiptir. 21 $ kazanmak için 1 $ eklemek istiyorum. Bunu bilen tek yolu kullanmaktır

$balance = $this->Model->find('first', array(
    'conditions' => array('User.id' => $userId), 
    'fields' => array('User.balance') 
)); 

$this->Model->save(array(
    'User' => array('id' => $userId, 'balance' => $balance['User']['balance'] + $credit) 
)); 

nasıl hepsi içine bir save çağrı alabilirim?

cevap

1

bu deneyin: -

public function edit($id = null) { 
     $this->layout = 'admin_layout'; 
     $this->Model->id = $id; 
     if (!$this->Model->exists()) { 
      throw new NotFoundException(__('Invalid model')); 
     } 
     if ($this->request->is('post') || $this->request->is('put')) { 
      if ($this->Model->save($this->request->data)) { 
       $this->Session->setFlash(__('The model has been saved')); 
       $this->redirect(array('action' => 'index')); 
      } else { 
       $this->Session->setFlash(__('The model could not be saved. Please, try again.')); 
      } 
     } else { 
      $this->request->data = $this->Model->read(null, $id); 
     } 
     $datd = $this->Model->find('list'); 
     $this->set('data', $datd); 
    } 
3
$this->Model->saveField('balance','balance+1'); 

Hile yapmalılar!

+0

beni yendi :) İşte API bağlantı var http://api.cakephp.org/class/model#method-ModelsaveField – tigrang

+0

Ben bir CakePHP adamı (CodeIgniter bir adam daha) bile değilim ve bunu anladım! Afedersiniz! – David

+4

Sadece ekstra bir not: '$ this-> Model-> id' seçeneğinin, – tigrang

8

Bu yapmalıdır:

$this->User->updateAll(array('User.balance' =>'User.balance + 1'), array('User.id' => $id));