Yii Framework Forum

Duda para mostrar varias tablas no relacionada


(CABB13) #1

Buenas tardes, tengo una duda con yii, si se puede llamar a varias tablas, solo quiero invocarlo con sus datos ya registrados para hacer reportes general. ¿Cómo haría por favor?. Mucha gracias

El ejemplo de tablas son:

Tabla donación

Catalogo de un bien

Registros de datos


(Jiuly Rojas) #2

Puedes llamar todas las tablas que desees con solo invocar al modelo de las mismas. Revisa esto a ver si te ofrece una ayuda

https://www.yiiframework.com/doc/guide/1.1/es/database.dao

También te recomiendo veas como funciona el search () en el modelo y replicarlo según lo que necesitas.

Dame mas informacion para ayudarte, que es lo que necesitas hacer ?


(CABB13) #3

Gracias. El proyecto se trata de hacer reporte de bienes mueble e imueble ante un ente.

Los bienes esta caracterizado por:

Como fue adquirido que tiene sus tablas respectivas q son 9 tablas

Su catalogo

La unidad administrativa

su responsable

datos basicos

datos del inmueble o mueble

datos particulares

Seguro.

La duda de yii q tenia antes era como llamarlo y hacerlo por una sola pagina o por x pagina. En esta ultima me explico. En una pagina te pregunta como fue adquirido, cuando llenes el registro de como fue adquirido, pasa la siguiente y registra el catalogo asi hasta llegar a seguros y después imprimirlo. Q hice yo, lo hice de esta manera…

. Pero falta como hacer el reporte con esos datos y me estaba volviendo loco.


(Jiuly Rojas) #4

Al parecer tienes varios puntos en uno . ¿ Que te recomiendo yo ?

primero ¿Por que hay 9 tablas dependiendo como fue adquirido el bien si se puede colocar en una sola y solo agregar el campo que las discrimine?. Es decir todos los muebles deberían estar en una tabla

¿ segundo esas tablas están relacionadas entre sí ? Si la pregunta es si muévete entre sus relaciones y llama todos los campos que necesites. Ejemplo:

Tabla bienes
Id_bien (pk)
nombre_bien
Fecha_compra
id_sede (fk)
id_unidad (fk)

sede
id_sede (pk)
nombre_sede

unidad
id_unidad (pk)
nombre_unidad

aqui para llamar la tabla bien con todas sus relaciones en una sola consulta dependiendo yo lo agregaria en el modelo

public function search_report()
{
// @todo Please modify the following code to remove attributes that should not be searched.

$criteria=new CDbCriteria;
$criteria->with=array('sede','unidad');

$criteria->compare('id',$this->id,true);
$criteria->compare('nombre_bien',$this->nombre_bien,true);
$criteria->compare('fecha_compra',$this->fecha_compra,true);
$criteria->compare('sede.nombre_sede',$this->id_sede,true);
$criteria->compare('unidad.nombre_unidad',$this->id_unidad,true);

return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
));
}

tambien otra forma de hacerlo es llamar a todo el modelo de bien y moverte entre las relaciones del modelo en la parte de public function relations() revisa que este llamando correctamente sus relaciones

Te recomiendo tambien leer un poco sobre consultar relacionadas
https://www.yiiframework.com/doc/guide/1.1/es/database.arr

Espero haberte ayudado . Saludos :yii::venezuela:
http://jiuly.com.ve/


(CABB13) #5

Pregunte a unos compañeros y me dijeron que hicieran una tabla completa con todos los atributos q tiene la adquisición, catalogo, unidad, responsable, sede, datos básicos, datos del inmueble, datos particulares y seguro.

No sabia q se podria separar asi como en de la imagen cuando son muchos campos en una tabla ejemplo%20de%20tabla

Pero si tengo esta gran duda, en las 9 tablas de adquisición del bien tiene como tablas: concurso abierto o cerrado, compra directa, confiscación y las otras 7. ¿Puedo hacer un llamado de Jquery desde el main de layout? Para crear botones por ejemplo, si el usuario quiere seleccionar que fue por expropiación la adquisición del inmueble, salga todo los campos de la tabla expropiación y así si selecciona que fue por confiscación, compra directa y las otras 7.

Gracias por su paciencia y respuesta.


(Jiuly Rojas) #6

haz el jquery desde un controlador que le pongas default o desde cada controlador que necesites. No lo recomiendo desde el layout