I closed your ticket, as I didn't have any troubles with using form
helper and saveAll(). Like teknoid said Model.1.field is the correct
format for multi record forms.  I closed the ticket with additional
information.  Perhaps this should be documented better?

-Mark

On Nov 6, 8:04 pm, Joel <[EMAIL PROTECTED]> wrote:
> For reference I have created a ticket in trac 
> here:https://trac.cakephp.org/ticket/5715
>
> On Nov 6, 5:23 pm, Joel <[EMAIL PROTECTED]> wrote:
>
> > Hi,
>
> > I've run into a frustrating problem, I'm trying to validate an array
> > of the same type of model, but the
>
> > I have used the name convention as suggested 
> > here:http://manual.cakephp.org/complete/181/Core-Helpers#Field-naming-conv...
>
> > eg:
>
> > <?php
> >    echo $form->input('fieldname.1');
> >    echo $form->input('fieldname.2');
> > ?>
> > <input type="text" id="ModelnameFieldname1" name="data[Modelname]
> > [fieldname][1]">
> > <input type="text" id="ModelnameFieldname2" name="data[Modelname]
> > [fieldname][2]">
>
> > The problem is when I do model.saveAll() it screws up because it
> > expects the data in this format:
> > data[1][Modelname][fieldname]
> > data[2][Modelname][fieldname]
>
> > I know that is the expected model because of the comment above the
> > saveAll function:
> > @param array $data Record data to save.  This can be either a
> > numerically-indexed array (for saving multiple records of the same
> > type), or an array indexed by association name.
>
> > But validation errors won't display in the saveAll format.
>
> > Because validationErrors array ends up looking like:
> > [ModelName][1][field] = "error message"
> > [ModelName][2][field] = "error message"
>
> > But for the FormHelper to display the errors it needs to look like
> > this:
> > [ModelName][field][1] = "error message"
> > [ModelName][field][2] = "error message"
>
> > So I have managed to work around it by using this in the view:
> >    echo $form->input('Model.fieldname.1');
> >    echo $form->input('Model.fieldname.2');
>
> > And then I have a function that converts the $this->data for saveAll:
>
> >    function _prepareDataForValidation($data) {
> >       $fixedData = array();
>
> >       foreach ($data as $model => $fields) {
> >          foreach ($fields as $field => $values) {
> >             foreach ($values as $id => $value) {
> >                $fixedData[$id][$model][$field] = $value;
> >             }
> >          }
> >       }
>
> >       return $fixedData;
> >    }
>
> > And another function that puts the validationErrors in the right
> > format:
>
> >    function _fixValidationErrorsArray($validationErrors) {
> >       $newValidationErrors = array();
>
> >       foreach($validationErrors as $key => $fields) {
> >          foreach ($fields as $field => $value) {
> >                 $newValidationErrors[$field][$key] = $value;
> >          }
> >       }
>
> >       return $newValidationErrors;
> >    }
>
> > Should I log this as a bug in trac?
>
> > I really think FormHelper should be changed to be in this format:
>
> > <?php
> >    echo $form->input('Model.1.fieldname');
> >    echo $form->input('Model.2.fieldname');
> > ?>
>
> > instead of
>
> > <?php
> >    echo $form->input('Model.fieldname.1');
> >    echo $form->input('Model.fieldname.2');
> > ?>
>
> >https://trac.cakephp.org/ticket/4981issimilar to this, except I
> > don't have the belongs to association.
--~--~---------~--~----~------------~-------~--~----~
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]
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to