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
  IMPRIMIR DATOS ALMACENADOS EN UNA TABLA DE LA BD decimocuarto 4 121 Ayer 08:08 PM
Último mensaje: decimocuarto
  Como leer, extraer e insertar datos desde un archivo excel a tabla de BD usando Yii tdeveloper63 4 1,524 22-04-2014 06:10 PM
Último mensaje: carlos_belisario
  actualizar datos desde formulario con datos dinamicos albertcobos 1 543 13-03-2014 11:37 AM
Último mensaje: aferrop
Pregunta Criterios de Busqueda en Tablas Relacionadas Jadder Moya 0 432 10-11-2013 10:14 PM
Último mensaje: Jadder Moya
  Relacion de tablas y CDetailView luis.castro 2 749 28-08-2013 01:10 PM
Último mensaje: luis.castro
  Guardar Multiples Datos en una Tabla cesarg24 1 1,085 26-08-2013 02:29 PM
Último mensaje: apositivo
Exclamación Multiplicación entre dos tablas jeriverod 0 541 19-06-2013 02:13 PM
Último mensaje: jeriverod
  Dropdown desde una tabla de datos en un fieldmask jeriverod 2 838 14-06-2013 09:09 AM
Último mensaje: jeriverod
  Formulario de registro validado con datos de Mysql jlagger 0 822 28-05-2013 01:19 PM
Último mensaje: jlagger
Exclamación Combo Dependiente pero sin usar tablas de la bd Christian 0 531 26-04-2013 04:07 PM
Último mensaje: Christian

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