Ok, finally able to get it to work. The results if anyone is interested. https://github.com/resting/cakephp/commits/test_validation
On Monday, 17 September 2012 10:29:07 UTC+8, resting wrote: > > Hi yes, realized my mistake. > > Have made the changes > https://github.com/resting/cakephp/commit/ce2ffa4300f59720566a85db0b5ced5d4b96a117 > > But the result is still the same...weird... > > On Monday, 17 September 2012 03:40:36 UTC+8, euromark wrote: >> >> have you ever seen validates() taking arguments? especially $data? nope >> >> $this->Model->set($this->request->data) >> $result = $this->Model->validates() >> >> as the book describes >> >> >> >> Am Sonntag, 16. September 2012 20:09:24 UTC+2 schrieb resting: >>> >>> Created a test setup with v2.2.0 >>> >>> Validation doesn't work. >>> Empty fields still pass. >>> >>> What am I doing wrong here? >>> >>> Full source: >>> https://github.com/resting/cakephp/blob/test_validation/app/Controller/MyFormController.php >>> >>> On Friday, 14 September 2012 15:42:36 UTC+8, resting wrote: >>>> >>>> I have something like this in my view: >>>> >>>> echo $this->Form->input('Modelname.1.fieldname'); >>>> >>>> (ref: >>>> http://book.cakephp.org/2.0/en/core-libraries/helpers/form.html#field-naming-conventions) >>>> >>>> >>>> >>>> I have this in my model: >>>> >>>> public $validate = array( >>>> 'filename' => array('ruleFilenameEmpty' => array('rule' => >>>> 'notEmpty', 'required' => true, 'allowEmpty' => false, 'last' => true))); >>>> >>>> This is the structure of $this->request->data: >>>> >>>> array( >>>> 'Capture' => array( >>>> (int) 0 => array( >>>> 'filename' => '', >>>> ) >>>> ) >>>> ) >>>> >>>> But it always return a validation error, whether there's text in the >>>> textfield or not: >>>> >>>> array( >>>> 'filename' => array( >>>> (int) 0 => 'ruleFilenameEmpty' >>>> ) >>>> ) >>>> >>>> (printed from debug($this->Capture->validationErrors)) >>>> >>>> Tested the validation with: >>>> >>>> $this->Capture->set($this->request->data); >>>> if ($this->Capture->saveAll($this->request->data)) { >>>> $this->Session->setFlash('<span style="color: red">' . __('It >>>> validates') . '</span>'); >>>> } >>>> >>>> I had tried all possible names for the validation. None works. >>>> >>>> What am I doing wrong here? >>>> >>>> Also I would like to validate each set of fields in >>>> $this->request->data before saving. >>>> >>>> This is because there are some others to be done after it validates. >>>> If the action fails, it should not save. >>>> This cannot be done with saveAll(). >>>> >>>> How can I evaluate each set of arrays in $this->request->data before >>>> saving? >>>> >>> -- Like Us on FacekBook 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 post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. Visit this group at http://groups.google.com/group/cake-php?hl=en.
