Dear All, Forgive me if this is covered elsewhere. I'm playing with cakePHP as an alternative to Rails and am getting to grips with it by creating a really simple social network app.
I've got some nice authentication and user profiles sorted and that's all displaying great but now I've come to add the "add as a friend" functionality and I'm struggling. Every user in the "users" table has an "id" and I also have a table set up, "users_users", to hold the self referential join. This table has a an "id", a "user_id" and a "friend_id". My user model contains the following... <?php class User extends AppModel { var $name = 'User'; var $hasOne = 'Profile'; var $hasMany = array('Status' => array('order' => 'Status.created DESC' )); var $hasAndBelongsToMany = array( 'Friend' => array('className' => 'User', 'joinTable' => 'users_users', 'foreignKey' => 'user_id', 'associationForeignKey' => 'friend_id' ), 'Admirer' => array('className' => 'User', 'joinTable' => 'users_users', 'foreignKey' => 'friend_id', 'associationForeignKey' => 'user_id' ) ); } ?> And my users_controller contains... <?php class UsersController extends AppController { ..... function addfriend($friend_id = null) { $user_id = $this->Session->read('User'); $this->data['User']['id'] = $user_id['id']; $this->data['Friend']['id'] = $friend_id; print_r($this->data); if($this->User->saveAll($this->data)){ echo 'saved'; }else{ echo 'failed'; } } ..... } ?> Now I know that I've got the data element wrong for the database save because it isn't working and the SQL that's generated when you add a friend is incorrect. If you're logged in as a user with id 1 and want to become friends with the user with id 4 (http://localhost/network/users/addfriend/4), you get... data = Array ( [User] => Array ( [id] => 1) [Friend] => Array ( [id] => 4 ) ) ...and the SQL from the CakePHP debug panel is... UPDATE `users` SET `id` = 1 WHERE `users`.`id` = 1 Is anyone able to help me get this whole self-referential-HABTM relationship thing sorted? Thanks in advance. Dave. --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---