Yii Framework Forum: Mostrar Campo Relacionado - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Mostrar Campo Relacionado Rate Topic: -----

#1 User is offline   sirpyerre 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 11
  • Joined: 28-September 12

Posted 08 November 2012 - 03:08 PM

Que tal.
Soy nuevo trabajando en este framework, sobre todo con actrive record y las relaciones.
Genere mi codigo con la herramienta gii y me genero la relación de mis dos tablas en el modelo.

public function relations()
	{
		// NOTE: you may need to adjust the relation name and the related
		// class name for the relations automatically generated below.
		return array(
			'articulo' => array(self::BELONGS_TO, 'Articulo', 'articulo_id'),
		);
	}


Cuando en la vista se me lista los campos solo veo el articulo_id. ¿Que me falta agregar para ver el nombre del articulo?

En la vista tengo el siguiente código.
<?php $this->widget('zii.widgets.CListView', array(
	'dataProvider'=>$dataProvider,
	'itemView'=>'_view',
)); ?>



Gracias por su ayuda
0

#2 User is offline   Carlos Belisario 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 15
  • Joined: 25-June 12
  • Location:Venezuela

Posted 08 November 2012 - 07:44 PM

Muestra la consulta que estas realizando,le estas agregando el with?? ver la documentación oficial sobre las relaciones http://www.yiiframew...en/database.arr no estaría de más, saludos
0

#3 User is offline   Rodrigo Coelho 

  • Master Member
  • PipPipPipPip
  • Yii
  • Group: Members
  • Posts: 665
  • Joined: 05-August 10
  • Location:Rio de Janeiro, Brazil

Posted 09 November 2012 - 12:06 AM

Hola! Usted puede probar giix.
0

#4 User is offline   sirpyerre 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 11
  • Joined: 28-September 12

Posted 09 November 2012 - 07:20 PM

Hola gracias por la respuesta. Vi la documentación pero no me quedaba tan claro y buscando me encontre un video.

Lo que me faltaba es crear el modelo con de mi otra tabla con la que se hace la ralación en este caso articulo y ya solo hice:

echo CHtml::encode($data->articulo->articulo);


Antes tenia en mi vista _view:
echo CHtml::encode($data->articulo_id);


View PostCarlos Belisario, on 08 November 2012 - 07:44 PM, said:

Muestra la consulta que estas realizando,le estas agregando el with?? ver la documentación oficial sobre las relaciones http://www.yiiframew...en/database.arr no estaría de más, saludos

0

#5 User is offline   robregonm 

  • Experienced Yii Developer
  • PipPipPipPip
  • Yii
  • Group: Members
  • Posts: 601
  • Joined: 30-July 09
  • Location:Colombia

Posted 11 November 2012 - 11:51 AM

Si utiliza Bootstrap (de Twitter) le recomiendo AweCrud, pues genera el código CSS 100% compatible con Bootstrap ;)

Saludos
Ricardo Obregón
LinkedIn Profile
YiiFramework en Español - http://yiiframework.co/ - Yii Code Generator for Bootstrap
http://obregon.co/ - https://1server.co/
PHP 5.5+, nginx, MySQL, PostgreSQL, Yii 1.x & 2.x, CanJS and more.
Follow me: @robregonm & @obregonco & @1ServerCo.
0

#6 User is offline   nuelma 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 13
  • Joined: 08-December 13

Posted 08 December 2013 - 12:54 PM

Epa!. se que este post esta mas que resuelto!. pero tengo el mismo problema que tu! y dices que solo cambiastes en la vista _view

echo CHtml::encode($data->articulo_id);

por

echo CHtml::encode($data->articulo->articulo);

suponiendo que:

echo CHtml::encode($data->Nombre_de_la_relacion->campo_de_la_tabla);

pues yo tengo algo parecido

<?php echo CHtml::encode($data->cod_prov); ?>

y lo cambie por

<?php echo CHtml::encode($data->codProv->razon_social); ?> y me da el error "Trying to get property of non-object" y e intentado cambiar el nombre de la relación por el nombre de la tabla y tampoco!.. me gustaría que me pasaras ese vídeo que viste porfa!...

ya cree ambos modelos y ambos crud con el gii!.. pero no encuentro como acceder a los demas campos de la tabla relacioanda q no sea la PK
0

#7 User is offline   sirpyerre 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 11
  • Joined: 28-September 12

Posted 08 December 2013 - 03:31 PM

Hola.
Lo que me hacia falta era la relación con mi otro modelo.
Generé mi modelo "documento_linea" si ya definiste las relaciones en la BD gii te genera las relaciones solito de lo contrario hay que agregarla manualmente; esto es lo que hice yo.
Estas son todas las relaciones de mi modelo entre ellas la de articulo.

	return array(
			'alumno' => array(self::BELONGS_TO, 'Alumno', 'alumno_id'),
			'articuloGradoPeriodo' => array(self::BELONGS_TO, 'ArticuloGradoPeriodo', 'articulo_grado_periodo_id'),
			'documento' => array(self::BELONGS_TO, 'Documento', 'documento_id'),
			'canalVenta' => array(self::BELONGS_TO, 'CanalVenta', 'canal_venta_id'),
			'articulo' => array(self::BELONGS_TO, 'Articulo', 'articulo_id'),
			'persona' => array(self::BELONGS_TO, 'Persona', 'persona_id'),
			'tipoVenta' => array(self::BELONGS_TO, 'TipoVenta', 'tipo_venta_id'),
			'plazo' => array(self::BELONGS_TO, 'Plazo', 'plazo_id'),
			'colegio'=>array(self::BELONGS_TO, 'Colegio', 'persona_id'),

		);


Luego en mi vista en mi caso "admin" hice lo siguiente:

$this->widget('bootstrap.widgets.TbGridView', array(
	'id'=>'documento-linea-grid',
	'type'=>'striped bordered condensed hover',
	'dataProvider'=>$model->ObtenerDocumentos(),
	'filter'=>$model,
	'columns'=>array(
		'documento_id',
		array('name'=>'articulo_id', 
			'value'=>'isset($data->articulo)? $data->articulo->articulo:"--"'
		),
	)
 ));


Dado que ya definí la reacion "articulo" con mi modelo "Articulo" por medio de la PK "articulo_id" puedo acceder al nombre del articulo mediante "$data->articulo->articulo".

Espero te ayude.

Saludos.



View Postnuelma, on 08 December 2013 - 12:54 PM, said:

Epa!. se que este post esta mas que resuelto!. pero tengo el mismo problema que tu! y dices que solo cambiastes en la vista _view

echo CHtml::encode($data->articulo_id);

por

echo CHtml::encode($data->articulo->articulo);

suponiendo que:

echo CHtml::encode($data->Nombre_de_la_relacion->campo_de_la_tabla);

pues yo tengo algo parecido

<?php echo CHtml::encode($data->cod_prov); ?>

y lo cambie por

<?php echo CHtml::encode($data->codProv->razon_social); ?> y me da el error "Trying to get property of non-object" y e intentado cambiar el nombre de la relación por el nombre de la tabla y tampoco!.. me gustaría que me pasaras ese vídeo que viste porfa!...

ya cree ambos modelos y ambos crud con el gii!.. pero no encuentro como acceder a los demas campos de la tabla relacioanda q no sea la PK

0

#8 User is offline   nuelma 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 13
  • Joined: 08-December 13

Posted 08 December 2013 - 04:25 PM

si me sirvió bro! gracias!... la cosa es que estaba confundido con $data->articulo->articulo:"--"' ya vi q el primer articulo se refiere a la relación y el segundo articulo es el nombre de la tabla





View Postsirpyerre, on 08 December 2013 - 03:31 PM, said:

Hola.
Lo que me hacia falta era la relación con mi otro modelo.
Generé mi modelo "documento_linea" si ya definiste las relaciones en la BD gii te genera las relaciones solito de lo contrario hay que agregarla manualmente; esto es lo que hice yo.
Estas son todas las relaciones de mi modelo entre ellas la de articulo.

	return array(
			'alumno' => array(self::BELONGS_TO, 'Alumno', 'alumno_id'),
			'articuloGradoPeriodo' => array(self::BELONGS_TO, 'ArticuloGradoPeriodo', 'articulo_grado_periodo_id'),
			'documento' => array(self::BELONGS_TO, 'Documento', 'documento_id'),
			'canalVenta' => array(self::BELONGS_TO, 'CanalVenta', 'canal_venta_id'),
			'articulo' => array(self::BELONGS_TO, 'Articulo', 'articulo_id'),
			'persona' => array(self::BELONGS_TO, 'Persona', 'persona_id'),
			'tipoVenta' => array(self::BELONGS_TO, 'TipoVenta', 'tipo_venta_id'),
			'plazo' => array(self::BELONGS_TO, 'Plazo', 'plazo_id'),
			'colegio'=>array(self::BELONGS_TO, 'Colegio', 'persona_id'),

		);


Luego en mi vista en mi caso "admin" hice lo siguiente:

$this->widget('bootstrap.widgets.TbGridView', array(
	'id'=>'documento-linea-grid',
	'type'=>'striped bordered condensed hover',
	'dataProvider'=>$model->ObtenerDocumentos(),
	'filter'=>$model,
	'columns'=>array(
		'documento_id',
		array('name'=>'articulo_id', 
			'value'=>'isset($data->articulo)? $data->articulo->articulo:"--"'
		),
	)
 ));


Dado que ya definí la reacion "articulo" con mi modelo "Articulo" por medio de la PK "articulo_id" puedo acceder al nombre del articulo mediante "$data->articulo->articulo".

Espero te ayude.

Saludos.

0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users