Para poder exportar datos filtrados del gridview en Yii primeramente debemos de seguir esto. Cuando se tiene ese primer paso 100% funcional hacer lo siguiente: 1- Ir al modelo deseado y agregar lo siguiente a la función search (en este caso en el modelo Productos): 1-  En el controlador productos  (esto solo en este caso) debemos sustituir la función actionGenerarPdf() por lo siguiente: Con eso ya podrán exportar a PDF datos filtrados o todo lo que hay en la tabla sin problema alguno.


Lo primero que necesitamos para exportar a PDF es descargar la extensión EYiiPdf y ponerlo en la carpeta extensions, posteriormente debemos descargar http://www.mpdf1.com/mpdf/download y ponerlo en la carpeta vendors con el nombre de mpdf dentro de protected. – En el main.php (config) debemos de agregar en el array components lo siguiente: – En el controlador productos (voy a usar de ejemplo) debemos agregar lo siguiente: Para entender el ejemplo dejo la tabla productos: CREATE TABLE `productos` ( `id_producto` int(10) unsigned NOT NULL AUTO_INCREMENT, `id_categoria` int(10) NOT NULL, `id_marca` int(10) NOT NULL, `descripcion` varchar(150) NOT NULL, `unidad_medida` varchar(80) NOT NULL, `id_igv` int(10) NOT NULL, `precio_compra` float(30,0)… Continuar leyendo


En este tema les quiero mostrar como realizar búsqueda entre fechas en el GridView, en este caso voy a usar la tabla auditoria y el campo fecha_auditoria va a tener la opción para filtrar entre fechas. Modelo Auditoria (Las modificaciones que se deben hacer en el modelo): Vista auditoria/admin.php (Las modificaciones que se deben hacer en la vista admin): Haciendo esas modificaciones ya van a tener 100% funcional la búsqueda entre fechas, para que pueden utilizar estos códigos nada más deben de adaptarle al modelo y vista admin que deseen, básicamente lo que deben de cambiar es la fecha_auditoria por… Continuar leyendo


Una de las cosas útiles en una aplicación web es sin dudas el autocompletado que nos permite ir mostrando los resultados de lo que escribimos en un textfield para luego seleccionar lo que estamos buscando, todo se hace vía AJAX. Para usar el widget que trae Yii incorporado ir a /protected/views/nombre_del_modelo/_form.php y agregar lo siguiente: Referencias (Autorizaciones y Ciudadanos): ciudadanos_id_ciudadano = nombre del campo que lleva la clave primaria de un registro de la tabla ciudadanos, visualizar que es un campo oculto. ciudadanosIdCiudadano= nombre de la relación, para mostrar el nombre de la ciudad. nombre_ciudadano = campo ficticio para mostrar el nombre de la… Continuar leyendo


Active Record en Yii: Aunque la DAO de Yii puede manejar virtualmente cualquier tarea relacionada con la base de datos, lo más probable es que gastemos el 90% de nuestro tiempo escribiendo algunas sentencias SQL relacionadas con la ejecución de las operaciones CRUD comunes. Es tambien dificil mantener nuestro código cuando éste está mezclado con sentencias SQL. Para solucionar estos problemas, podemos usar los Registros Activos (Active Record). Registro Activo (AR) es una técnica popular de Mapeo Objeto-Relacional (ORM). Cada clase AR representa una tabla de la base de datos (o vista) cuyos atributos son representados como las propiedades de… Continuar leyendo


DAO en Yii: Yii provee un poderoso soporte para la programación con bases de datos. Construído sobre la extensión PHP de Obejotos de Datos (PDO), los Objetos de Acceso a Datos de Yii (DAO) habilitan el acceso a diferentes sistemas de administración de bases de datos (DBMS) en una interfaz uniforme simple. Las aplicaciones desarrolladas usando el DAO de Yii pueden ser fácilmente cambiadas para usar un DBMS diferente sin la necesidad de modificar el código de acceso a los datos. Los Registros Activos de Yii (AR), implementados con un enfoque ampliamente adoptado de Mapeo Objeto-Relacional, simplifican aún más la… Continuar leyendo


Para poder ordenar nuestro GridView bajo el criterio que queramos, eso lo hacemos modificando el parámetro sort del CActiveDataProvider que se encuentra en la función search del modelo, de igual modo vamos a agregar un condición extra en la búsqueda, en nuestro caso filtramos una determinada categoria y ordenaremos la tabla en forma descendente mediante el campo desc_producto: Si por ejemplo queremos mostrar el GridView de a 5 registros, usar lo siguiente:


En este tema quiero mostrar el manejo de las claves foráneas en Yii framework mediante Active Record (AR). Antes de usar AR para ejecutar consultas relacionales, necesitamos darle conocer a AR como una clase AR se relaciona con otra. La relación entre dos clases AR está directamente asociada con la relación entre las tablas de la base de datos representadas por esas clases. Desde el punto de vista de la base de datos, una relación entre dos tablas A y B tiene tres tipos: uno-a-muchos (ej.: User y Post), uno-a-uno (ej.: User y Profile) y muchos-a-muchos (ej.: Category y Post). En AR, hay cuatro tipo de relaciones: BELONGS_TO: si la relación… Continuar leyendo


Un tema más que importante en toda aplicación es que tenga validaciones para evitar que el usuario ingrese cualquier dato por ejemplo a una base de datos, también es importante por cuestiones de seguridad. Por suerte Yii framework nos provee validaciones de forma automática y también podemos crear nuestras propias validaciones muy fácilmente. Si queremos validar campos lo hacemos en el método rules() del modelo en cuestión: La validación para hacer campos obligatorios: array(‘id_proveedor, fecha_compra, user, id_tipo_documento, total’, ‘required’), También puedes especificar que el valor sea numero, incluso entero: array(‘id_tipo_documento’, ‘numerical’, ‘integerOnly’=>true), array(‘igv, total, descuento_total’, ‘numerical’), Para cadenas podemos restringir la… Continuar leyendo


Este manual abarca los puntos más usados en una aplicación web típica. Índice: Instalar Yii Framework y crear la primera aplicación Crear modelos y CRUDs en Yii Framework Personalizar gii en Yii Framework PHP layouts y variables del config en Yii Modificar MENU y CSS en Yii Temas en Yii APP multilenguaje en Yii Autenticación de usuarios utilizando una base de datos en Yii URLs limpias en Yii Framework Validaciones en Yii Bases de datos (DAO) en Yii Bases de datos (AR) en Yii Relaciones en Yii Orden por defecto y condición extra para el GridView en Yii Fechas con… Continuar leyendo