Re: Date validation from Model
I am not sure why you created save() function in the model? You could set $this-Model-set($this-data) in the controller itself before calling the save method. On Mar 12, 9:05 pm, starkey starkey...@gmail.com wrote: I found my problem... I changed the way I assigned the local $data to the model's $data: // in my model Old: $this-data = $data; New: $this-set($data); And now it works great! Thanks a lot Cake for an excellent framework! S On Mar 12, 11:26 am, starkey starkey...@gmail.com wrote: I forgot to mention that I also tried other validation rule formats, e.g. 'rule' = array('date','mdy'), without any luck. The Validation::date method gets passed an array when calling validateData from my model while Model::save() sends it a string. Thanks again! On Mar 12, 11:16 am, starkey starkey...@gmail.com wrote: Hello all! I'm using 1.2.1 I used to just have Cake validate my data in the save() method. Now I need to validate the data before the save, so I call $this-validateData() inside my model before the save(). My dates used to validate fine when calling save(), now they all fail when I call validateData. It seems that save() changed the date array into a string before passing it to the date validation function. It seems I'll have to change the date array into a string before calling validateData then change it back to an array for save. I figure I'm missing something b/c Cake is usually much more programmer friendly! I have a date field that is created like this in my view: echo $form-input('Punch.workdate', array('maxYear'=$yr, 'minYear'=--$yr, 'div'=false, 'label'=false, 'dateFormat'='mDY')); In my model I have this validation: 'workdate' = array( 'rule' = array('date','ymd'), 'message' = 'Date is not valid.', 'allowEmpty' = false ), Then in my model I've customized the save() method: function save($data) { $bRet = false; // some logic against $data $this-data = $data; if ($this-invalidFields()) { return parent::save(); } return false; } Unfortunately, the data is never saved because the date fails (even though it is valid). The date array will look like this: data[Punch][workdate][month] = '03' data[Punch][workdate][day] = '12' data[Punch][workdate][year] = '2009' Any help would be greatly appreciated! S --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups CakePHP group. To post to this group, send email to cake-php@googlegroups.com To unsubscribe from this group, send email to cake-php+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/cake-php?hl=en -~--~~~~--~~--~--~---
Date validation from Model
Hello all! I'm using 1.2.1 I used to just have Cake validate my data in the save() method. Now I need to validate the data before the save, so I call $this- validateData() inside my model before the save(). My dates used to validate fine when calling save(), now they all fail when I call validateData. It seems that save() changed the date array into a string before passing it to the date validation function. It seems I'll have to change the date array into a string before calling validateData then change it back to an array for save. I figure I'm missing something b/c Cake is usually much more programmer friendly! I have a date field that is created like this in my view: echo $form-input('Punch.workdate', array('maxYear'=$yr, 'minYear'=--$yr, 'div'=false, 'label'=false, 'dateFormat'='mDY')); In my model I have this validation: 'workdate' = array( 'rule' = array('date','ymd'), 'message' = 'Date is not valid.', 'allowEmpty' = false ), Then in my model I've customized the save() method: function save($data) { $bRet = false; // some logic against $data $this-data = $data; if ($this-invalidFields()) { return parent::save(); } return false; } Unfortunately, the data is never saved because the date fails (even though it is valid). The date array will look like this: data[Punch][workdate][month] = '03' data[Punch][workdate][day] = '12' data[Punch][workdate][year] = '2009' Any help would be greatly appreciated! S --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups CakePHP group. To post to this group, send email to cake-php@googlegroups.com To unsubscribe from this group, send email to cake-php+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/cake-php?hl=en -~--~~~~--~~--~--~---
Re: Date validation from Model
I forgot to mention that I also tried other validation rule formats, e.g. 'rule' = array('date','mdy'), without any luck. The Validation::date method gets passed an array when calling validateData from my model while Model::save() sends it a string. Thanks again! On Mar 12, 11:16 am, starkey starkey...@gmail.com wrote: Hello all! I'm using 1.2.1 I used to just have Cake validate my data in the save() method. Now I need to validate the data before the save, so I call $this-validateData() inside my model before the save(). My dates used to validate fine when calling save(), now they all fail when I call validateData. It seems that save() changed the date array into a string before passing it to the date validation function. It seems I'll have to change the date array into a string before calling validateData then change it back to an array for save. I figure I'm missing something b/c Cake is usually much more programmer friendly! I have a date field that is created like this in my view: echo $form-input('Punch.workdate', array('maxYear'=$yr, 'minYear'=--$yr, 'div'=false, 'label'=false, 'dateFormat'='mDY')); In my model I have this validation: 'workdate' = array( 'rule' = array('date','ymd'), 'message' = 'Date is not valid.', 'allowEmpty' = false ), Then in my model I've customized the save() method: function save($data) { $bRet = false; // some logic against $data $this-data = $data; if ($this-invalidFields()) { return parent::save(); } return false; } Unfortunately, the data is never saved because the date fails (even though it is valid). The date array will look like this: data[Punch][workdate][month] = '03' data[Punch][workdate][day] = '12' data[Punch][workdate][year] = '2009' Any help would be greatly appreciated! S --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups CakePHP group. To post to this group, send email to cake-php@googlegroups.com To unsubscribe from this group, send email to cake-php+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/cake-php?hl=en -~--~~~~--~~--~--~---
Re: Date validation from Model
I found my problem... I changed the way I assigned the local $data to the model's $data: // in my model Old: $this-data = $data; New: $this-set($data); And now it works great! Thanks a lot Cake for an excellent framework! S On Mar 12, 11:26 am, starkey starkey...@gmail.com wrote: I forgot to mention that I also tried other validation rule formats, e.g. 'rule' = array('date','mdy'), without any luck. The Validation::date method gets passed an array when calling validateData from my model while Model::save() sends it a string. Thanks again! On Mar 12, 11:16 am, starkey starkey...@gmail.com wrote: Hello all! I'm using 1.2.1 I used to just have Cake validate my data in the save() method. Now I need to validate the data before the save, so I call $this-validateData() inside my model before the save(). My dates used to validate fine when calling save(), now they all fail when I call validateData. It seems that save() changed the date array into a string before passing it to the date validation function. It seems I'll have to change the date array into a string before calling validateData then change it back to an array for save. I figure I'm missing something b/c Cake is usually much more programmer friendly! I have a date field that is created like this in my view: echo $form-input('Punch.workdate', array('maxYear'=$yr, 'minYear'=--$yr, 'div'=false, 'label'=false, 'dateFormat'='mDY')); In my model I have this validation: 'workdate' = array( 'rule' = array('date','ymd'), 'message' = 'Date is not valid.', 'allowEmpty' = false ), Then in my model I've customized the save() method: function save($data) { $bRet = false; // some logic against $data $this-data = $data; if ($this-invalidFields()) { return parent::save(); } return false; } Unfortunately, the data is never saved because the date fails (even though it is valid). The date array will look like this: data[Punch][workdate][month] = '03' data[Punch][workdate][day] = '12' data[Punch][workdate][year] = '2009' Any help would be greatly appreciated! S --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups CakePHP group. To post to this group, send email to cake-php@googlegroups.com To unsubscribe from this group, send email to cake-php+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/cake-php?hl=en -~--~~~~--~~--~--~---