Loading



 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
DATOS EN UN DATAGRIDVIEW - 2 TABLAS
17-03-2013, 06:18 PM
Mensaje: #1
DATOS EN UN DATAGRIDVIEW - 2 TABLAS

Saludos a todos..


Ayuda por favor...


Tengo dos tablas relacionadas, TablaA con registros y TablaB sin registros. Como podria cargar los datos en un CGridView de la vista de admin.php que hace referencia a TablaB..???


Lo mas que he logrado es:
He comentado el //'dataProvider'=>$model->search(),


y luego he agregado el siguiente codigo:
'dataProvider'=>new CActiveDataProvider('TablaA'),


He Logrado que se liste los datos de tablaA, en la CGridView TablaB es decir de admin.php pero los campos que se lista como cod_fruta 100101 quisiera que me imprima el nombre..
ejemplo Manzana, Limon, etc..


Cree una funcion como ObtenerNombre en TablaAController.php
array(
'name'=>'cod_fruta',
'value'=>array($this,'ObtenerNombre'), //ver TablaAController.php
}


Pero arroja el siguiente error
CException
TablaBController and its behaviors do not have a method or closure named "ObtenerNombre".


Lo extraño o no se que estoy haciendo mal, es que si la vista fuera del CGridView TablaA admin.php
y creo la función, esta devuelve perfectamente los datos...


Gracias de antemano..

QUOTE
17-03-2013, 06:58 PM
Mensaje: #2
RE: DATOS EN UN DATAGRIDVIEW - 2 TABLAS

class Preinscrito extends CActiveRecord
{


public function relations()
{


    return array(

'sede' => array(self::BELONGS_TO, 'NmSede', 'sede_id'),

);
}

}


vista


<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'preinscritos-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
'id_preinscrito',
//campo de la tabla B...............
'sede.nombre_sede',


    array(
'class'=&gt;'CButtonColumn',
),
),

)); ?>

QUOTE
12-04-2013, 11:59 AM
Mensaje: #3
RE: DATOS EN UN DATAGRIDVIEW - 2 TABLAS

Hola, tengo el mismo problema que Cesarg24, he hecho lo que propones amaitan y me funciona perfectamente Guiño, pero no me filtra por esos campos. Y necesito que filtre. He probado bastantes cosas en la función search() pero sin éxito. ¿como puedo hacerlo?


Mi código es el siguiente:
El MODELO:
Tengo 2 clases: Usuario y Alumno. Alumno hereda de Usuario. y tienen la relación que indico en el código:

Código PHP:
public function relations(){
                return array(
                        ...
                        
'dni0' => array(self::BELONGS_TO'Usuarios''dni'),
                        ...
                );} 
La función search() de Alumnos es así:
Código PHP:
public function search(){
                
$criteria=new CDbCriteria;
                
$criteria->compare('dni',$this->dni,true);
                
$criteria->compare('grupoScout',$this->grupoScout,true);
                
$criteria->compare('asociacion',$this->asociacion,true);
                return new 
CActiveDataProvider($this, array(
                        
'criteria'=>$criteria,
                ));} 
LA VISTA
Con el generador de código he generado un CRUD de Alumnos, y he modificado el gridview para que muestre algunos campos de Usuario:
Código PHP:
<?php $this->widget('zii.widgets.grid.CGridView', array(
        
'id'=>'alumnos-grid',
        
'dataProvider'=>$model->search(),
        
'filter'=>$model,
        
'columns'=>array(
                array( 
//ESTE ES UN CAMPO AÑADIDO
                
'name'=>'dni0.nombre',
                
'value'=>'$data->dni0->nombre." ".$data->dni0->apellidos',
                ),
                
'dni',
                array( 
//ESTE ES UN CAMPO AÑADIDO
                
'name'=>'dni0.telefono',
                
'value'=>'$data->dni0->telefono',
                ),
                array( 
//ESTE ES UN CAMPO AÑADIDO
                
'name'=>'dni0.email',
                
'value'=>'$data->dni0->email',
                ),      
                
'grupoScout',
                
'asociacion',
                array(
                        
'class'=>'CButtonColumn',
                ),
        ),
)); 
?>


Mostrarlo, lo muestra bien pero necesito que también se pueda filtrar por los campos añadidos.
¿como se podría hacer?


Un saludo y gracias!! Guiño

QUOTE
13-04-2013, 07:45 AM
Mensaje: #4
RE: DATOS EN UN DATAGRIDVIEW - 2 TABLAS

Aquí está la solución: http://www.internetria.com/blog/2013/02/.../#more-990
;D

QUOTE


Posibles temas similares...
Tema: Autor Respuestas: Vistas: Último mensaje
  pasar datos entre vistas pamelafaraci 5 274 17-07-2014 12:21 PM
Último mensaje: pamelafaraci
  CDbCommand falla pero guarda bien todos los datos en la BD alejo.vazquez 2 331 12-06-2014 01:56 PM
Último mensaje: bluyell
  Mostrar datos de en zii.widgets.grid.CGridView de una relacino muchos a muchos julioc_m18 0 357 27-05-2014 01:00 PM
Último mensaje: julioc_m18
  Almacenamiento de checkBoxList en Base de Datos AmataViro 5 513 21-05-2014 11:22 AM
Último mensaje: rahif
  IMPRIMIR DATOS ALMACENADOS EN UNA TABLA DE LA BD decimocuarto 4 608 23-04-2014 08:08 PM
Último mensaje: decimocuarto
  Como leer, extraer e insertar datos desde un archivo excel a tabla de BD usando Yii tdeveloper63 4 2,297 22-04-2014 06:10 PM
Último mensaje: carlos_belisario
  actualizar datos desde formulario con datos dinamicos albertcobos 1 951 13-03-2014 11:37 AM
Último mensaje: aferrop
Pregunta Criterios de Busqueda en Tablas Relacionadas Jadder Moya 0 613 10-11-2013 10:14 PM
Último mensaje: Jadder Moya
  Relacion de tablas y CDetailView luis.castro 2 989 28-08-2013 01:10 PM
Último mensaje: luis.castro
  Guardar Multiples Datos en una Tabla cesarg24 1 1,302 26-08-2013 02:29 PM
Último mensaje: apositivo

Salto de foro:


Usuario(s) navegando en este tema: 1 invitado(s)

Contáctanos | Yii Framework en Español | Volver arriba | Volver al contenido | Archivo (Modo simple) | Sindicación RSS