Como traer el valor de un registro de una tabla

Buenas, necesito una ayuda tengo:

Tabla: Pais

Id_pais

Nombre_pais

Tabla: Suscriptor

Id_Suscriptor

Nombre_suscriptor

Id_pais

Tabla: Convenio

Id_Convenio

Id_suscriptor

La pregunta consiste que en el modelo de Convenio tengo una relacion:

    'idSuscriptor' => array(self::BELONGS_TO, 'Suscriptor', 'Id_suscriptor')

con esta relación puedo traer el Nombre_suscriptor desde la vista de Convenio, y también puedo traer el Id_pais, pero lo que deseo es traer el Nombre_pais.

Como puedo hacer para traer el Nombre_pais desde la vista de Convenio.

Gracias por toda la ayuda.

Hola rgg.

Deberias crear una relación entre la table pais y la tabla convenio, para que por medio de esta relación puedas traer atributos de la tabla pais.

Seria una relación similar a la que tienes con la tabla suscriptor.




  'idpais' => array(self::BELONGS_TO, 'Pais', 'idpais')



De esta forma podrias mostrar los atributos que tengas en pais desde la vista convenio.

Saludos

Una solucion que se me ocurre de manera rápida, mas no se si estructuralmente estará bien.

Es que si ya conoces el id_pais hagas una busqueda al la tabla paises y busques ese pais por ej.




....

  $id_pais = $model->id_pais; //este valor lo conoces por tu relacion

  $pais = Pais::model()->find('id_pais = ?',array($id_pais));

  if($pais){

      echo "El nombre del pais ".$pais->nombre_pais;

  } 

....



Si no debes agregar tu relacion como la que tienes ahora.

Saludos

Muchas gracias por la pronta Respuesta, pues hice lo que me decías pero sigo igual es decir, recordando que en la tabla convenio no tengo el campo id_pais, pero por la relación que tengo con la tabla suscriptor con el campo Id_suscriptor pude traer el id_pais.

Trate de ver si con un ‘pais’=>array(self::MANY_MANY,‘Pais’,‘Suscriptor(Id_pais,Id_suscriptor)’), pero tampoco lo logre.

Muchas Gracias también por tu pronta respuesta, ya lo probé y si me sirvió !!!! , haciéndole unos ajustes al final me quedo así en la vista:

En la vista Convenio:

_view (Convenio)

Codigo

<b><?php echo CHtml::encode($data->getAttributeLabel(‘Pais’)); ?>:</b>

    &lt;?php 


    


    &#036;id_pais = &#036;data-&gt;idSuscriptor-&gt;Id_pais; //este valor lo conoces por tu relacion


    &#036;pais = Pais::model()-&gt;find('Id_pais = ?',array(&#036;id_pais));


    //Pais::model()-&gt;findAll(array('order' =&gt; 'Nombre_pais')),'Id_pais','Nombre_pais'


    if(&#036;pais){


            echo &quot;El nombre del pais &quot;.&#036;pais-&gt;Nombre_pais;


    } 


          


    ?&gt;

Que bueno que ya lo solucionaste, pero ps solo debias agregar un atributo más en el modelo Convenio.




  public $id_pais; //Esto lo add en el modelo convenio



Y por medio de este atributo y la realación que tiene la table suscriptor con pais, podrias instanciar los atributos de la table que necesitaras.

Saludos.

Listo muchas gracias!!! al final con lo que me dijiste solo tuve que poner… en la vista…y listo.


   <b><?php echo CHtml::encode($data->getAttributeLabel('Pais')); ?>:</b>

	   <?php echo CHtml::encode($data->idSuscriptor->idPais->Nombre_pais); ?>                  

Muchas Gracias por la ayuda ! :D

Hola rgg.

Que bueno que te funciona, y para eso esta la comunidad para colaborarnos.

1+.

(puedes colocar el post como solucionado).

Saludos