Thanks for the reply.   That makes sense to loop through the data, the
problem seems to be in how the form helper is rendering the name
field.

I tried your suggestions and here is what I got ...
---code
foreach ($this->data as $row) {
  echo $form->hidden('Entry.id');
---

---html
  <input type="hidden" name="data[Entry][id]" value="" id="EntryId" />

That isn't where the data is located.  It would work if the name was
data[0][Entry][id].


I tried a variation where I have a counter variable $i ranging from 0
to 2

echo $form->hidden("$i.Entry.id"); /* yes the $i is there to convert
is into the index */

renders

  <input type="hidden" name="data[Entry][Entry][id]" ... for the first
row
  <input type="hidden" name="data[1][Entry][id]" ... for the second
row
  <input type="hidden" name="data[2][Entry][id]" ... for the third row

I don't know why the first row is different; it would be correct if
the first row matched.

On May 24, 12:41 pm, Reza Muhammad <[EMAIL PROTECTED]> wrote:
> On May 24, 2008, at 8:52 PM, troyp wrote:
>
>
>
> > I'm just learning and I don't get it.  I am trying to follow the
> > concept of convention over configuration and finding issues.
>
> > I want a multi-record form so I perform a findAll(...) to get the
> > data.
>
> > Then I make the form calls
>
> >  echo $form->input("$i.time");
> >  echo $form->input("$i.category_id");
>
> Just to make sure, there shouldn't be a variable sign over there.  You  
> only need to put 'Model.field', so by putting $form-
>  >input('Product.name'), it will automatically maps to name field in  
> your products table.
>
> > The problem is that it appears that findAll is using a different
> > keypath to create the array than the FormHelper is assuming.
>
> > findAll returns an array of this form {n}.{Model}.{Field}
>
> > while FormHelper is assuming {Model}.{n}.{Field}
>
> You only need to change your foreach statement.  If the array is  
> resulting {n}.{Model}.{field}, then you use foreach ($var as $v), then  
> inside your foreach statement you call it by $v['Model']['field']
>
> But, if the resulting array is {Model}.{n}.{Field}, you use foreach  
> ($var['Model'] as $v), then you call it by $v['Field'] inside the  
> statement.
>
> > Seems like a terrible waste of time (and code) to have  me make
> > another copy of the data with a different keypath.  I must be missing
> > something.
>
> > Any suggestions would be greatly appreciated.
>
> > Thanks,
> >      Troy

--~--~---------~--~----~------------~-------~--~----~
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