2012-03-31 2 views
5

Ho riscontrato questo problema con le relazioni con Codeigniter DataMapper. Ho un modello Interview con uno author_id e uno interviewee_id. Entrambi si riferiscono all'ID utente nel modello utente.CodeIgniter/Datamapper: Due relazioni uno-a-molti alla stessa tabella non funzionanti

Ho provato diversi approcci e nessuno lavoro; questo è quello che ho in questo 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') 
); 
} 

Come faccio lascio DataMapper sapere che un rapporto passerà attraverso author_id, e l'altra attraverso interviewee_id?

+1

Sembra che ci debba essere necessariamente un campo 'user_id' e quindi per le altre relazioni posso nominare i campi come voglio. Quindi il cambio di 'interview_intervalidato 'a' user_id' sembra fare il trapano. Nel caso in cui qualcuno abbia lo stesso problema là fuori. – Nelo

+5

Non esitate a postare una risposta alla vostra stessa domanda per aiutare gli altri, se ciò risolvesse il problema: [rispondi]. Puoi [accettare] (http://meta.stackexchange.com/a/5235/159834) dopo un giorno o due se non ci sono risposte migliori. –

+0

Bumping, sperando che @Nelo crei e accetti una risposta per rimuoverlo dalle query "senza risposta". – swatkins

risposta

0

Citando Nelo che ha risposto alla sua domanda in un commento:

Sembra che ci deve essere un user_id field necessariamente e poi per gli altri rapporti posso nominare i campi però che voglio. Quindi, cambiare interviewee_id a user_id seems per eseguire il trapano. Solo nel caso qualcuno abbia lo stesso problema là fuori