relación HAS_ONE con trough

Hola,

Según el manual se puede hacer la siguiente relación con las siguientes tablas:

tabla user (id, username, password, email) -> id es la primary key

tabla profile (user_id, birthday, website) -> user_id es la primary key y además foreign key de la tabla user (id)

tabla address (profile_id, country, city, street) -> profile_id es la primary key y foreign key de la tabla profile (user_id)

Según esto las relations en el model User son:


class User extends CActiveRecord {

     ...

     public function relations() {

          return array(

                    ’profile’=>array(self::HAS ONE,’Profile’,’user id’),

                    ’address’=>array(self::HAS ONE,’Address’,array(’id’=>’profile id’),’through’=>’profile’),

              ); 

     }

}

Yo quisiera saber, cómo serían las relations según el siguiente caso… quiero tener la relación country en el model user:

tabla user (id, username, password, email) -> id es la primary key

tabla profile (user_id, birthday, website, country_id) -> user_id es la primary key y además foreign key de la tabla user (id)

tabla country (id, country_name) -> id es la primary key


class User extends CActiveRecord {

     ...

     public function relations() {

          return array(

                    ’profile’=>array(self::HAS ONE,’Profile’,’user id’),

                    ’country’=> ?,

              ); 

     }

}

Gracias y saludos

Hola de nuevo, ya he encontrado la manera, aquí la dejo por si sirve a alguien, saludoosss…


'country' => array(self::HAS_ONE, 'Country', array('country_id' => 'id'),'through' => 'profile', 'with'=>'CountryLang'),

el with lo he añadido para traerme el nombre en el idioma que corresponda… sólo sería así:


'country' => array(self::HAS_ONE, 'Country', array('country_id' => 'id'),'through' => 'profile'),