getDataSource(); $dataSource->begin(); if(count($data)>0) $result = $this->saveMany($data); else $result = true; if($result){ $array1 = array(); $array2 = array(); foreach($data as $a) if(isset($a['id'])) $array1[]=$a['id']; foreach($old as $a) if(isset($a['id'])) $array2[]=$a['id']; $diff=array_diff($array2, $array1); if(count($diff)>0) $result = $this->delete($diff); } if ($result) { $dataSource->commit(); return true; } else { $dataSource->rollback(); } return false; } /** * Validation rules * * @var array */ public $validate = array( 'category_id' => array( 'numeric' => array( 'rule' => array('numeric'), //'message' => 'Your custom message here', //'allowEmpty' => false, //'required' => false, //'last' => false, // Stop validation after this rule //'on' => 'create', // Limit validation to 'create' or 'update' operations ), ), 'startdate' => array( 'date' => array( 'rule' => array('date'), //'message' => 'Your custom message here', //'allowEmpty' => false, //'required' => false, //'last' => false, // Stop validation after this rule //'on' => 'create', // Limit validation to 'create' or 'update' operations ), 'compare' => array( 'rule'=>'compareDates' ) ), 'enddate' => array( 'date' => array( 'rule' => array('date'), //'message' => 'Your custom message here', //'allowEmpty' => false, //'required' => false, //'last' => false, // Stop validation after this rule //'on' => 'create', // Limit validation to 'create' or 'update' operations ), ), 'title' => array( 'notEmpty' => array( 'rule' => array('notEmpty'), //'message' => 'Your custom message here', //'allowEmpty' => false, //'required' => false, //'last' => false, // Stop validation after this rule //'on' => 'create', // Limit validation to 'create' or 'update' operations ), ), 'place' => array( 'notEmpty' => array( 'rule' => array('notEmpty'), //'message' => 'Your custom message here', //'allowEmpty' => false, //'required' => false, //'last' => false, // Stop validation after this rule //'on' => 'create', // Limit validation to 'create' or 'update' operations ), ), ); //The Associations below have been created with all possible keys, those that are not needed can be removed public function compareDates() { return ($this->data[$this->alias]['startdate'] < $this->data[$this->alias]['enddate']) ? true : false; } /** * belongsTo associations * * @var array */ public $belongsTo = array( 'DreamjobListCvCategory' => array( 'className' => 'DreamjobListCvCategory', 'foreignKey' => 'category_id', 'conditions' => '', 'fields' => '', 'order' => '' ) ); }