I should mention that in my data I want User[0] to be associated with
Player[0], and so on.

On Feb 26, 9:55 am, spazard1 <[email protected]> wrote:
> I have my data in this format now (below).  How do I call save/saveall
> to update the Campaign, Player and the habtm players_users?
>
> I have tried this:
> if ($this->Campaign->save($this->data)) {
>       if ($this->Campaign->Player->saveAll($this->data)) {
>             $this->flash('Your campaign has been setup.', "/campaigns/
> run/$id");
>        }}
>
> This only saves the first player, and does not save any of the habtm
> with user.
>
> if ($this->Campaign->save($this->data)) {
>       if ($this->Player->saveAll($this->data['Player'])) {
>             $this->flash('Your campaign has been setup.', "/campaigns/
> run/$id");
>        }}
>
> This saves all the players, but does not save the habtm with user.
>
> Thanks again for the help.
>
> Array
> (
>     [Campaign] => Array
>         (
>             [id] => 3
>             [baseHeroConquest] =>
>             [baseOverlordConquest] =>
>         )
>     [Player] => Array
>         (
>             [0] => Array
>                 (
>                     [characterName] =>
>                     [playerName] =>
>                     [username] => testing
>                     [baseExperienceSpent] =>
>                     [overlord] => 0
>                     [campaign_id] => 3
>                 )
>
>             [1] => Array
>                 (
>                     [characterName] =>
>                     [playerName] =>
>                     [username] => testing2
>                     [baseExperienceSpent] =>
>                     [overlord] => 0
>                     [campaign_id] => 3
>                 )
>
>             [2] => Array
>                 (
>                     [characterName] =>
>                     [playerName] =>
>                     [username] =>
>                     [baseExperienceSpent] =>
>                     [overlord] => 0
>                     [campaign_id] => 3
>                 )
>
>             [3] => Array
>                 (
>                     [characterName] =>
>                     [playerName] =>
>                     [username] =>
>                     [baseExperienceSpent] =>
>                     [overlord] => 0
>                     [campaign_id] => 3
>                 )
>
>             [5] => Array
>                 (
>                     [characterName] => The Titan
>                     [playerName] =>
>                     [username] =>
>                     [baseExperienceSpent] =>
>                     [overlord] => 1
>                     [campaign_id] => 3
>                 )
>
>         )
>     [User] => Array
>         (
>             [0] => Array
>                 (
>                     [id] => 11
>                 )
>             [1] => Array
>                 (
>                     [id] => 12
>                 )
>         )
> )
>
> On Feb 25, 1:14 pm, mark_story <[email protected]> wrote:
>
> > saveAll() does work with HABTM.  saveAll() does not however work when
> > your data arrays are not formatted the way it likes them.  Which seems
> > to be the case here.  You have the User key inside the Player key.
> > That is not saveAll()'s preferred diet.  It likes it habtm at the same
> > depth as the related model.  Much like save().
>
> > -Mark
>
> > On Feb 25, 10:20 am, spazard1 <[email protected]> wrote:
>
> > > saveAll is supposed to work with HABTM though.  I'm trying to save
> > > multiple Player at the same time, all of which should also save an
> > > associated User.  I'm thinking I just setup the data array incorrectly
> > > or something like that, which is causing it not to save.
>
> > > On Feb 25, 4:58 am, luke BAKING barker <[email protected]> wrote:
>
> > > > hi
>
> > > > use save() not saveAll with HABTM
>
> > > > On Feb 25, 7:01 am, spazard1 <[email protected]> wrote:
>
> > > > > Hello all.
>
> > > > > I am running into a problem where my join tables are not being updated
> > > > > when I call saveAll.  I have the latest stable version of cakephp, in
> > > > > which this bug was fixed.
>
> > > > > Here is the relevant action code:
> > > > > //first update the ['Player'] array to replace username with ['User']
> > > > > ['id']
> > > > >          foreach ($this->data['Player'] as $key => $row) {
> > > > >             $this->data['Player'][$key]['campaign_id'] = $id;
> > > > >             if ($this->data['Player'][$key]['username'] != "") {
> > > > >                $this->data['Player'][$key]['User']['id'] = 
> > > > > $this->User->field('id', array('User.username' => 
> > > > > $this->data['Player'][$key]
>
> > > > > ['username']));
> > > > >             }
> > > > >          }
> > > > >         debug($this->data['Player']);
> > > > >          if ($this->Campaign->save($this->data)) {
> > > > >             if ($this->Player->saveAll($this->data['Player'])) {
> > > > >                $this->flash('Your campaign has been setup.', "/
> > > > > campaigns/run/$id");
> > > > >             }
> > > > >          }
> > > > >       }
>
> > > > > And the Player data that is in $this->data['Player'] (only showing the
> > > > > first)
> > > > > [0] => Array
> > > > >         (
> > > > >             [characterName] =>
> > > > >             [playerName] =>
> > > > >             [username] => testing
> > > > >             [baseExperienceSpent] =>
> > > > >             [overlord] => 0
> > > > >             [campaign_id] => 3
> > > > >             [User] => Array
> > > > >                 (
> > > > >                     [id] => 11
> > > > >                 )
> > > > >         )
>
> > > > > The way I understand it, this should cause my players_users table to
> > > > > have a row inserted into it.  However that is not happening.  When I
> > > > > do a find() on Player, it does return to me the associated Users, so
> > > > > I'm pretty sure the model associations are setup correctly.
>
> > > > > Thanks for any help you can offer.
--~--~---------~--~----~------------~-------~--~----~
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