Definiendo columnas de tipo enum en las migraciones para CodeIgniter 4

- Andrés Cruz

In english
Definiendo columnas de tipo enum en las migraciones para CodeIgniter 4

Vamos a conocer como podemos emplear los enums para definir nuestros tipos en la base de datos en CodeIgniter 4; los cuales son una estructura sencilla y con cierta flexibilidad que podemos emplear en lugar de las relaciones foráneas que requieren de una estructura mayor.

Los enums son una estructura muy sencilla que nos permite definir un conjunto de valores fijos para una columna, la definimos como si fuera un array, por lo tanto, el valor del registro que queramos insertar tiene que estar comprendido en ese pool de datos que definimos como un array.

Vamos a definir una migración como la siguiente:

class ProductsControl extends Migration
{
   public function up()
   {
       $this->forge->addField([
           'id' => [
               'type' => 'INT',
               'unsigned' => TRUE,
               'auto_increment' => TRUE
           ],
           'count'          => [
               'type'           => 'INT',
               'constraint'     => 5,
               'unsigned'       => TRUE
           ],
           'type'      => [
               'type'           => 'ENUM',
               'constraint'     => ['exit', 'entry'],
               'default'        => 'entry',
           ],
       ]);
       $this->forge->addKey('id', TRUE);
       $this->forge->createTable('products_control');
   }

   public function down()
   {
       $this->forge->dropTable('products_control');
   }
}

Explicación del código anterior

Es una migración NORMAL en CodeIgniter 4, lo importante en esta publicación, es la llamada type:

'type'      => [
               'type'           => 'ENUM',
               'constraint'     => ['exit', 'entry'],
               'default'        => 'entry',
           ],

En la cual definimos en el constraint, como un array, en la cual definimos el pool de datos, en este caso, estamos indicando que type, solamente puede contener uno de los siguientes valores 'exit', 'entry'; le definimos un valor por defecto, y poco más.

Como puedes ver, tenemos cualquier estructura o columnas que quieras definir, y el enum, el cual no es más que una definición común en C4 con un array que define los valores que puedes usar 'exit' y 'entry'

El resto de tus columnas, pueden tener la estructura que tu quieras, que necesitas tu aplicación, y para este ejemplo no es importante.

Andrés Cruz

Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter

Andrés Cruz en Udemy

Acepto recibir anuncios de interes sobre este Blog.