Hi Lane, I'm getting this exact same problem, invlaidation occurs, but the messages are not populated and I get an empty array for the model that failed in the view's $this->validationErrors.
Strange! I'm using RC 3 - LANE, did you work out any solution other than the workaround you provided? Luke On Sep 10, 5:57 pm, Lane <[EMAIL PROTECTED]> wrote: > Hello, > > I'm trying to usesaveAllto save multiple records of a model in one > form. Everything works fine as far as saving and validation goes > except for one little problem. If the data entered does not validate, > the validationErrors array that is returned does not contain the > fields or the error messages for the fields that did not validate. > Here is an example setup (same > ashttp://teknoid.wordpress.com/2008/08/04/practical-use-of-saveall-part... > > view > -------------------------------------------------------------------------------------------------------- > echo $form->create(); > > echo $form->input('0.name'); > echo $form->input('0.username'); > echo $form->input('0.email'); > echo $form->input('0.company_id', array('type'=>'hidden', > 'value'=>1)); > > echo $form->input('1.name'); > echo $form->input('1.username'); > echo $form->input('1.email'); > echo $form->input('1.company_id', array('type'=>'hidden', > 'value'=>1)); > > echo $form->end('Add'); > -------------------------------------------------------------------------------------------------------- > > controller > -------------------------------------------------------------------------------------------------------- > function add() { > if(!empty($this->data)) { > $this->Account->saveAll($this->data['Account'], > array('validate'=>'first')); > }} > > -------------------------------------------------------------------------------------------------------- > > If I try to submit the form without entering a username for either (or > entering one that is not alphanumeric), the form does not validate, > but it does not show any errors. When I print out $this->Account- > > >validationErrors I get the following array: > > Array > ( > [0] => Array > ( > ) > > [1] => Array > ( > ) > > ) > > So it knows that entry 0 and 1 did not validate, but it doesn't return > the error messages or fields. Has anyone encountered this problem, or > perhaps know a fix. I created a work around for now, but it would be > nice ifsaveAllwould display the errors. If I do this method it > works fine: > > foreach($this->data['Account'] as $k => $v) > { > $this->Account->set($v); > if(!$this->Account->validates()) > { > $errors[$k] = $this->Account->validationErrors; > } > > } > > if(empty($errors)) > { > // All records have validated, it is safe to save > $this->Account->saveAll($this->data['Account']);} > > else > { > $this->Account->validationErrors = $errors; > > } --~--~---------~--~----~------------~-------~--~----~ 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 [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/cake-php?hl=en -~----------~----~----~----~------~----~------~--~---