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