cakephp - 不要在更新时更改空字段

i use cakephp 2.5.4 and want when update record in database, fields that is null, do not change

this is my update function

...
   if ($this->User->save($this->request->data)) {
       return $this->User->id;
   }
...

Before saving your data, remove your empty values from the array.

foreach ($this->request->data as $key => $value) {
    if (empty($value))
        unset($this->request->data[$key]);
}

if ($this->User->save($this->request->data)) {
   return $this->User->id;
}

Add the condition -

$conditions = array(
               'conditions' => array('my_field IS NOT NULL')
              );

$this->User->updateAll($this->request->data, $conditions);

and you dont need $this->User->getLastInsertId();, you will get it by $this->User->id;