That what I thought. Validation is not applied if you set the value directly with a setter like you does. You need to use patchEntity().
Le 2 sept. 2015 10:29, "lorenzoshake" <ferri.lore...@gmail.com> a écrit : > > > > Il giorno mercoledì 2 settembre 2015 10:20:53 UTC+2, Anthony GRASSIOT ha scritto: >> >> Could you show your controller finction ? >> these validation are used when using newEntity() or patchEntities'), not save(). >> > > the other validation condition works fine ; here the method: > > public function validationDefault(Validator $validator) > { > $validator > ->add('id', 'valid', ['rule' => 'numeric']) > ->allowEmpty('id', 'create') > ->add('social_user_id', 'valid', ['rule' => 'numeric']) > ->allowEmpty('social_user_id') > ->allowEmpty('name') > ->allowEmpty('address') > ->allowEmpty('city') > ->add('lat', 'valid', ['rule' => 'numeric']) > ->allowEmpty('lat') > ->add('lng', 'valid', ['rule' => 'numeric']) > ->allowEmpty('lng') > ->add('start_date', 'valid', ['rule' => 'date']) > ->add('end_date', [ > 'valid'=> ['rule' => 'date'] , > 'compare' => [ > 'rule' => function ($value, $context) { > $date_end = Time::createFromFormat('d/m/Y',$value); > $date_start = Time::createFromFormat('d/m/Y',$context['data']['start_date']); > return ($date_start < $date_end); > } > ] > ] > > ); > > return $validator; > } > > In controller: > .... > $calendar = $this->Calendars->patchEntity($calendar, $calendar_data); > ..... > $calendar->start_date = implode("-",array_reverse(explode("/", $this->request->data['start_date']))); > $calendar->end_date = implode("-",array_reverse(explode("/", $this->request->data['end_date']))); > ... > if(!$this->Calendars->save($calendar)) > ... > > -- > Like Us on FaceBook https://www.facebook.com/CakePHP > Find us on Twitter http://twitter.com/CakePHP > > --- > You received this message because you are subscribed to the Google Groups "CakePHP" group. > To unsubscribe from this group and stop receiving emails from it, send an email to cake-php+unsubscr...@googlegroups.com. > To post to this group, send email to cake-php@googlegroups.com. > Visit this group at http://groups.google.com/group/cake-php. > For more options, visit https://groups.google.com/d/optout. -- Like Us on FaceBook https://www.facebook.com/CakePHP Find us on Twitter http://twitter.com/CakePHP --- You received this message because you are subscribed to the Google Groups "CakePHP" group. To unsubscribe from this group and stop receiving emails from it, send an email to cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.