If you use the Security Component then the Form Helper will
automatically generate and manage hash fields to make sure that hidden
fields are not modified (amongst other things) (I've found it to cause
more problems than it solves, however - give it a go).

To be honest, I rarely make use of saveAll(), I generally override the
save() function in the model to save the associated models I need to.
This way I'm 100% in control of what happens and when. I'll probably
get used to saveAll() eventually though...

On Oct 8, 1:40 pm, Günther Theilen <[EMAIL PROTECTED]> wrote:
> Yeah, I thought about that.
> But what happens if a user changes the value  of the hidden field
> AdvancedEntry.id?
> So I would have to check if the field has the right value. And in that
> case I could just drop the hidden field.
>
> Or am I missing something?
>
> Regards
> Guenther
>
> grigri wrote:
> > Add a hidden field containing the AdvancedEntry id to the form:
>
> > echo $form->input('BasicEntry.bacon');
> > echo $form->input('AdvancedEntry.id');
> > echo $form->input('AdvancedEntry.eggs');
>
> > (The `id` of the BasicEntry is transmitted to the edit action as the
> > 1st parameter, so you don't need to do this for the primary model. It
> > doesn't hurt, though)
>
> > (id fields are hidden by default, so you don't need to specify it)
>
> > hth
> > grigri
>
> > On Oct 8, 9:45 am, Günther Theilen <[EMAIL PROTECTED]> wrote:
> >> Hi,
>
> >> let's say there are two models:
>
> >> BasicEntry hasOne AdvancedEntry
> >> AdvancedEntry belongsTo BasicEntry
>
> >> In the advanced_entries table in the DB there is a field called
> >> "basic_entry_id"
>
> >> In views/basic_entries_edit.ctp there is something like this:
>
> >> $form->input('BasicEntry.foo');
> >> $form->input('AdvancedEntry.bar');
>
> >> In the basic_entries_controller/edit method I have:
>
> >> $this->BasicCity->save($this->data);
>
> >> which saves only the data for the BasicEntry.
> >> So I assumed I have to use saveAll() which doesn't work quite as I 
> >> expected.
>
> >> If I don't set $this->data['AdvancedEntry']['id'] manually before
> >> saveAll I get an INSERT instead of an UPDATE.
> >> I set the value with something like this:
>
> >> $this->data['AdvancedEntry']['id'] =
> >>    $this->BasicEntry->AdvancedEntry->field('id', array(
> >>      'basic_entry_id' => $this->data['BasicEntry']['id']));
>
> >> Do I really have to do this manually or is there an automagic cake-like 
> >> way?
>
> >> Regards
> >> Guenther
--~--~---------~--~----~------------~-------~--~----~
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