2012-03-31 25 views
5

Tengo este problema con las relaciones con Codeigniter DataMapper. Tengo un modelo Interview que tiene un author_id y un interviewee_id. Ambos se relacionan con la identificación del usuario en el modelo de usuario.CodeIgniter/Datamapper: Dos relaciones de uno a muchos para la misma tabla que no funciona

He estado intentando varios enfoques y ninguno funciona; esto es lo que tengo en este momento:

class Interview extends DataMapper 
{ 
    var $has_one = array(
    'interviewee' => array(
     'class' => 'user', 
     'other_field' => 'done_interview'), 
    'author' => array(
     'class' => 'user', 
     'other_field' => 'written_interview') 
); 
} 

class User extends DataMapper 
{ 
    var $has_many = array(
    'done_interview' => array(
     'class' => 'interview', 
     'other_field' => 'interviewee'), 
    'written_interview' => array(
     'class' => 'interview', 
     'other_field' => 'author') 
); 
} 

¿Cómo dejo DataMapper sabe que una relación va a ir a través de author_id, y el otro a través interviewee_id?

+1

Parece que es necesario que haya un campo 'user_id' necesariamente y luego para las otras relaciones puedo nombrar los campos como yo quiera. Así que cambiar 'interviewee_id' a' user_id' parece hacer el ejercicio. Por si acaso alguien tiene el mismo problema. – Nelo

+5

Por favor, siéntase libre de publicar una respuesta a su propia pregunta para ayudar a otros, si eso resuelve su problema: [respuesta]. Puede [aceptar] (http://meta.stackexchange.com/a/5235/159834) después de un día o dos si no hay mejores respuestas. –

+0

Combatiendo esto, esperando que @Nelo cree y acepte una respuesta para eliminar esto de las consultas "No respondidas". – swatkins

Respuesta

0

Citando Nelo que respondió a su pregunta en un comentario:

Parece necesario que haya un user_id field necesariamente y después de las otras relaciones que puedo nombrar los campos sin embargo yo quiero. Cambiando tan interviewee_id a user_id seems para hacer el taladro. En caso de que alguien tenga el mismo problema, por favor

Cuestiones relacionadas