Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/01/2014, 09:32
Avatar de reborn
reborn
 
Fecha de Ingreso: febrero-2010
Mensajes: 440
Antigüedad: 14 años, 2 meses
Puntos: 1
Como asociar los siguientes modelos relacionados?

Hola,

tengo el modelo User, el modelo Ticket y el modelo TicketResponse relacionados por id de la siguiente forma

User
id
...
----------------
Ticket
id
from_user_id -> id.User
to_user_id -> id.User
subject
-----------------
TicketResponses
id
ticket_id -> id.Ticket
from_user_id -> id.User
body

Las relaciones serian:
- Un usuario puede crear varios tickets
- Un ticket pertenece solo a UN usuario
- Un ticket puede tener NINGUNA/VARIAS respuestas y NINGUNO/UNO usuarios

Resumiendo: yo mando un ticket a un usuario y me lo puede responder o no.

Como llevo eso a hasMany, belongsTo, etc?

Esto fue lo q hice, no se si esta bien planteado y usado:

Ticket.php
Código PHP:
class Ticket extends AppModel{
        
//un ticket pertenece solo a UN usuario
        
public $belongsTo = array(
        
'User' => array(
            
'className' => 'User',
            
'foreignKey' => 'id'
        
)
        );
        
        
//un ticket puede tener ninguna/varias respuestas
        
public $hasMany = array(
        
'TicketResponse' => array(
            
'className' => 'TicketResponse',
            
'foreignKey' => 'ticket_id'
            
            
)           
    );

TicketResponse.php
Código PHP:
class TicketResponse extends AppModel{
        
//una respuesta pertenece a UN SOLO ticket y a UN solo usuario
        
public $belongsTo = array(
            
'Ticket' => array(
                
'className' => 'Ticket',
                
'foreignKey' => 'id'
            
),
            
'User' => array(
                
'className' => 'User',
                
'foreignKey' => 'id'

                
)   
        );