CakePHP - Campo data 0000-00-00 invece di NULL

 Se avete dei campi data, e non li valorizzate, cakephp ve li imposterà al valore 0000-00-00.

Questo valore è un valore data non valido per un sacco di piattaforme (tra cui Java e .NET). Mysql, invece, non protesta.

Per ovviare al problema, potete inserire nel model la funzione beforeSave, come nell'esempio che segue:

//Questa funzione svuota la data se è nulla, per evitare che diventi 0000-00-00
function beforeSave($options = array()) {
  parent::beforeSave($options);

  $k = array_keys($this->data[$this->name]);
  foreach ($k as $f)
  {
    if ($this->data[$this->name][$f]==0 && $this->_schema[$f]['type']=='date')
    {              
      $this->data[$this->name][$f]=NULL;
    }
  }
   return true;
 }