I added some logging just to make sure the relationships are unbound:

            $this->User->unbindAll(array('hasAndBelongsToMany' =>
array('HasAsFriend')));
            $this->log("current habtm: " . print_r($this->User-
>hasAndBelongsToMany, true));

The error log reads:

2008-05-08 17:03:49 Error: current habtm: Array
(
    [HasAsFriend] => Array
        (
            [className] => User
            [joinTable] => friends
            [foreignKey] => user_id
            [associationForeignKey] => friend_id
            [uniq] =>
            [conditions] =>
            [with] => Friend
            [fields] =>
            [order] =>
            [limit] =>
            [offset] =>
            [unique] => 1
            [finderQuery] =>
            [deleteQuery] =>
            [insertQuery] =>
        )

)

Which indicates that those relationships are unbound successfully.
But the habtmAdd still inserts into other tables:

$this->User->habtmAdd('HasAsFriend', 1, 3);

will result with SQL queries:

28      INSERT INTO `friends` (`user_id`,`friend_id`) VALUES (1,3)
29      SELECT `Friend`.`id` FROM `friends` AS `Friend` WHERE `friend_id` =
1
30      INSERT INTO `friends` (`friend_id`,`user_id`) VALUES (1,3)
31      SELECT `Family`.`id` FROM `families` AS `Family` WHERE `user_id` =
1
32      INSERT INTO `families` (`user_id`,`family_id`) VALUES (1,3)
33      SELECT `Family`.`id` FROM `families` AS `Family` WHERE `family_id`
= 1
34      INSERT INTO `families` (`family_id`,`user_id`) VALUES (1,3)
35      SELECT `Block`.`id` FROM `blocks` AS `Block` WHERE `user_id` = 1
36      INSERT INTO `blocks` (`user_id`,`block_id`) VALUES (1,3)

This is wierd. Is this a bug in cake or is it my misconfiguration in
User model?

On 5月8日, 下午4時41分, largon <[EMAIL PROTECTED]> wrote:
> If I comment out other habtm relationships, leaving only
>         var $hasAndBelongsToMany = array(
>                 'HasAsFriend' => array(
>                     'className' => 'User',
>                     'joinTable' => 'friends',
>                     'foreignKey' => 'user_id',
>                     'associationForeignKey' => 'friend_id',
>                     'uniq' => false,
>                     'conditions' => '',
>                 ),
>         );
> in my User model, then the save() will go flawlessly.
>
> However, if I leave those relationships in User model, then the data
> is inserted into
> other tables even if I manually unbindModel() them before calling
> $this->User->save().
>
> I'm confused. Is there anyone who knows why this is happening? Or
> maybe I should
> just use a $this->User->query() to do the saving job and insert the
> data in the right table? :(
>
> On 5月8日, 上午6時13分, largon <[EMAIL PROTECTED]> wrote:
>
> > Hi,
>
> > I'm on a project that users can add other users as friends, families,
> > or block them.
> > So I've set up some habtm behaviors for that. The tables (friends,
> > families, blocks) look
> > very similar, all with (user_id, friend_id) or (user_id, family_id) as
> > keys.
>
> > But when I save a data, like calling:
> > $this->data['User']['id'] = 1;
> > $this->data['HasAsFriend']['HasAsFriend'] = 2;
> > $this->User->save($this->data);
>
> > I'll have not only user1 adding user2 as friend, but also user2 adding
> > user1 as friend.
> > What's more, they're each other's families and user1 is blocking user2
> > too.
> > (The data got inserted into families table and blocks table too.)
>
> > I posted my user model relationships athttp://bin.cakephp.org/view/241705085
> > I also tried the behavior 
> > athttp://bakery.cakephp.org/articles/view/add-delete-habtm-behavior
> > ,
> > but with the code:
>
> > $this->User->habtmAdd('HasAsFriend', 1, 2);
>
> > Also results the same as inserting into families table and blocks
> > table.
>
> > I'm troubled, I'm not sure why this is happening. Any clues is greatly
> > appreciated.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To post to this group, send email to cake-php@googlegroups.com
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