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