Yii Framework Forum: CGridView - Yii Framework Forum

Jump to content

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

CGridView ordenar y buscar por campo relacionado Rate Topic: -----

#1 User is offline   gallego123 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 535
  • Joined: 11-August 09
  • Location:Argentina

Posted 12 May 2010 - 10:59 AM

Hola comunidad

busque pero no encontre

lo que quiero es usando zii.widgets.grid.CGridView
ordenar y buscar por un campo relacionado

osea

si tengo un "Libro" que tiene el campo idAutor
y tengo el "Autor" que tiene su nombre

quiero poder ordenar y buscar por nombre

seguro debe haber algun post sobre esto, pero no lo encuentro

gracias
KISS - Keep It Simple Stupid
ASAP-As Soon As Possible
http://www.yiiframew...oc/cookbook/71/
0

#2 User is offline   PoL 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 506
  • Joined: 05-November 08
  • Location:Buenos Aires, Argentina

Posted 12 May 2010 - 11:29 AM

Chequeaste esto?
[solved] Search() & Filter of a relations field through CGridView
Don't say what you think, think what you say
The problem is communication! Excess of communication!
0

#3 User is offline   gallego123 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 535
  • Joined: 11-August 09
  • Location:Argentina

Posted 13 May 2010 - 06:42 AM

[edit] 2 bis I, 2 bis II

gracias PoL
bien

entre este post http://www.yiiframew...umns#entry44210
y este otro http://www.yiiframew...view#entry45469

lo que hay que hacer es

1) modificar el metodo search() del modelo
   $criteria->with=array('autor');

2) crear un sort "a medida"
  $sort = new CSort();
  $sort->attributes = array(
   // para datos sin relacion
   'fecha'=>array(
      'asc'=>'t.fecha',
      'desc'=>'t.fecha desc',
    ),
//para datos relacionados
 'id_autor'=>array(
      'asc'=>'autor.nombre',
      'desc'=>'autor.nombre desc',
    ),
);


[edit] 2 bis I. compare
$criteria->compare('t.fecha',$this->fecha,true);
		$criteria->compare('autor.nombre',$this->id_autor,true);


[edit] 2 bis II. CActiveDataProvider
		return new CActiveDataProvider('Libros', array(
			'criteria'=>$criteria,
                        'sort'=>$sort,
		));


3) en admin.php (o la vista que corresponda)

<?php $this->widget('zii.widgets.grid.CGridView', array(
	'id'=>'libro-grid',
	'dataProvider'=>$model->search(),
	'filter'=>$model,
	'columns'=>array(
		
		'fecha',
                array('name'=>'id_autor','sortable'=>'true','value'=>'$data->autor->nombre'),




saludos!!!

This post has been edited by Horacio Segura: 13 May 2010 - 08:23 AM

KISS - Keep It Simple Stupid
ASAP-As Soon As Possible
http://www.yiiframew...oc/cookbook/71/
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