Наконец я сделал это:
В модели:
public $validate = array(
'date_start' =>array('rule'=>'dateNotColision',
'message' => 'Date Colision'
),
'date_end' =>array('rule'=>'dateNotColision',
'message' => 'Date Colision'
)
);
var $dataArray=array();
public function setDataArray($array){
$this->dataArray=$array;
}
function dateNotColision($check) {
foreach($this->dataArray as $row){
if(($row['date_start']>=$check && $check<=$row['date_end'])){
return false;
}
}
return true;
}
В контроллере:
$this->Hotel->Season->setDataArray($this->request->data['Season']);
foreach($this->request->data['Season'] as $reviewData){
$this->Hotel->Season->saveAssociated($reviewData);
}