Crear ABM para todas las tablas en Yii2

Publicado por Andrea Navarro en

La creación de ABM es fundamental para manejar los datos de la base de manera visual. Aunque Yii permite la creación automática de modelos, controladores y vistas a través de la extensión gii si la base tiene una gran cantidad de tablas el proceso puede tardar mucho. Más si tenemos en cuenta que una vez creados los ABM en ocasiones es necesario modificarlos para cambiar el formulario de inserción, modificar la manera de buscar u ordenar los datos o para el caso de claves foráneas.

En este artículo veremos como crear un comando de Yii que al ejecutarse cree los ABM para todas las tablas que encuentre en la base de datos a la que está conectada.

Requisitos previos

  • Tener instalado el framework Yii2
  • Tener una base de datos Mysql con tablas creadas (con o sin datos)
  • Conectar Yii con la base de datos
  • Tener instalado Composer

En este caso utilizaremos una base de datos con tablas vacias:

Base de datos para realizar ABM

Instalar extensiones

Para crear los ABM instalamos dos extensiones utilizando composer.

Instalar Gii para generar modelos y ABM para las tablas de la base de datos

Instalar la extensión yii2-console-runner para permitir ejecutar comandos de consola yii desde la aplicación

Crear comando de consola

Para que un archivo se pueda ejecutar por consola creamos un archivo que extienda de la clase Controller.

Crear archivo GenerarController.php en /commands/

Crear AMB

Una vez creado el archivo es posible ejecutar el comando:

Esto creará los siguientes archivos

Para acceder a cada uno de los ABM:

Aquí puede verse el ABM creado para la tabla personas:

ABM creado

Formulario de creación:

Creación ABM

Vista:

vista ABM

Administración:

admin ABM

Aunque, como se ha mencionado antes, es muy posible que sean necesarias modificaciones en el modelo, controlador o vistas este comando es una buena opción cuando se quiere comenzar la programación de una aplicación a partir de una base de datos ya creada o diseñada, sobre todo cuando la cantidad de tablas es elevada.

Espero que les sirva!

Categorías: Programación

Andrea Navarro

- Ingeniera en Informática - Docente universitaria - Investigadora