Ver Mensaje Individual
  #7 (permalink)  
Antiguo 08/10/2010, 10:54
Avatar de mayid
mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: CAKE - tabla de relacion user - user

Paso en limpio el problema.

Estoy generando este array:
Cita:
Array
(
[Friend] => Array
(
[user_id] => 8
[friend_id] => 7
)

)
Y guardando. La accion users/follow() es así:
Código PHP:
Ver original
  1. function follow(){
  2.            
  3. if (!empty($this->params['pass'][0]))
  4. {
  5.            
  6. $user_id = $this->Session->read('Auth.User.id'); // 8
  7. $friend_id = $this->params['pass'][0];        // 7
  8.                
  9. $data = array('Friend'=>array('user_id'=>$user_id, 'friend_id'=>$friend_id));              
  10.                
  11. $this->User->save($data)                           
  12.    
  13. }
  14. }

Y lo que me graba es esto:

Código MySQL:
Ver original
  1. id    user_id   friend_id
  2. 1   7   8
  3. 2   7   7

Es decir, me graba dos lineas. La primera invierte el orden, porque debería ser 8 7. La segunda, creo que es consecuencia del modelo. Que dice así:

Código PHP:
Ver original
  1. class User extends AppModel
  2.     {
  3.            var $name = 'User';
  4.            
  5.             var $hasAndBelongsToMany = array(
  6.                 'Friend' => array (
  7.                         'className' => 'User',
  8.                         'joinTable' => 'users_users', // solo para nombres no convencionales
  9.                         'foreignKey' => 'user_id',
  10.                         'associationForeignKey' => 'friend_id'
  11.                         //unique'         => true
  12.                     ),
  13.                 'Follower' => array(
  14.                         'className' => 'User',
  15.                         'joinTable' => 'users_users',
  16.                         'foreignKey' => 'friend_id',
  17.                         'associationForeignKey' => 'user_id'
  18.                     ),              
  19.                 'Word' => array(
  20.                         'className' => 'Word', //Users
  21.                         'joinTable' => 'users_words',
  22.                         'foreignKey' => 'user_id',
  23.                         'associationForeignKey' => 'word_id'
  24.                     )
  25.                  
  26.                  );
  27. }