La clase ColumnDefinition proporciona un conjunto de métodos para la creación de campos de base de datos y relaciones entre tablas en las migraciones. Estos métodos facilitan la definición precisa y eficiente de la estructura de la base de datos.
A continuación se muestran algunos de los métodos disponibles en la clase ColumnDefinition y su uso común:
Estos son solo algunos ejemplos de los métodos disponibles en la clase ColumnDefinition.
En este apartado daremos un ejemplo de uso de la clase ColumnDefinition.
En este ejemplo haremos uso de la función integer() para agregar un campo de tipo de entero a la definición de la tabla. El método espera como parámetros el nombre del campo y la longitud del campo, por defecto el valor de la longitud es 11.
$columnDefinition = new ColumnDefinition();
$field = $columnDefinition->integer('name')->generate();
// Result will be:
// $field = '`name` INT(11)';
En este ejemplo haremos uso de la función unsignedBigInteger() para agregar un campo de tipo de clave primaria a la definición de la tabla. El método espera como parámetros el nombre del campo.
$columnDefinition = new ColumnDefinition();
$field = $columnDefinition->unsignedBigInteger('id')->generate();
// Result will be:
// $field = '`id` BIGINT UNSIGNED';
En este ejemplo haremos uso de la función string() para agregar un campo de tipo de cadena a la definición de la tabla. El método espera como parámetros el nombre del campo y la longitud del campo, por defecto el valor de la longitud es 255.
$columnDefinition = new ColumnDefinition();
$field = $columnDefinition->string('name')->generate();
// Result will be:
// $field = '`name` VARCHAR(255)';
En este ejemplo haremos uso de la función text() para agregar un campo de tipo de cadena a la definición de la tabla. El método espera como parámetros el nombre del campo.
$columnDefinition = new ColumnDefinition();
$field = $columnDefinition->text('field')->generate();
// Result will be:
// $field = '`field` TEXT';
En este ejemplo haremos uso de la función decimal() para agregar un campo de tipo de decimal a la definición de la tabla. El método espera como parámetros el nombre del campo y la precisión y escala del campo decimal. Por defecto la precisión es 10 y la escala es 0.
$columnDefinition = new ColumnDefinition();
$field = $columnDefinition->decimal('field_name', 10, 2)->generate();
// Result will be:
// $field = '`field_name` DECIMAL(10, 2)';
En este ejemplo haremos uso de la función float() para agregar un campo de tipo flotante a la definición de la tabla. El método espera como parámetros el nombre del campo, la precisión y la escala del campo flotante. Por defecto la precisión es 10 y la escala es 0.
$columnDefinition = new ColumnDefinition();
$field = $columnDefinition->float('field_name', 10, 2)->generate();
// Result will be:
// $field = '`field_name` FLOAT(10, 2)';
En este ejemplo haremos uso de la función boolean() para agregar un campo de tipo de booleano a la definición de la tabla. El método espera como parámetros el nombre del campo.
$columnDefinition = new ColumnDefinition();
$field = $columnDefinition->boolean('status')->generate();
// Result will be:
// $field = '`status` TINYINT(1)';
En este ejemplo haremos uso de la función timestamp() para agregar un campo de tipo de tiempo a la definición de la tabla. El método espera como parámetros el nombre del campo.
$columnDefinition = new ColumnDefinition();
$field = $columnDefinition->timestamp('field')->generate();
// Result will be:
// $field = '`field` DATETIME';
En este ejemplo haremos uso de la función timestamps() para agregar un campo de tipo de tiempo a la definición de la tabla. El método no requiere parámetros.
$columnDefinition = new ColumnDefinition();
$field = $columnDefinition->timestamps()->generate();
// Result will be:
// $field = '`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP, `updated_at` DATETIME DEFAULT CURRENT_TIMESTAMP';
En este ejemplo haremos uso de la función dateTime() para agregar un campo de tipo de fecha a la definición de la tabla. El método espera como parámetros el nombre del campo.
$columnDefinition = new ColumnDefinition();
$field = $columnDefinition->dateTime('field')->generate();
// Result will be:
// $field = '`field` DATETIME';
En este ejemplo haremos uso de la función date() para agregar un campo de tipo de fecha a la definición de la tabla. El método espera como parámetros el nombre del campo.
$columnDefinition = new ColumnDefinition();
$field = $columnDefinition->date('field')->generate();
// Result will be:
// $field = '`field` DATE';
En este ejemplo haremos uso de la función time() para agregar un campo de tipo de tiempo a la definición de la tabla. El método espera como parámetros el nombre del campo.
$columnDefinition = new ColumnDefinition();
$field = $columnDefinition->time('field')->generate();
// Result will be:
// $field = '`field` TIME';
En este ejemplo haremos uso de la función json() para agregar un campo de tipo de JSON a la definición de la tabla. El método espera como parámetros el nombre del campo.
$columnDefinition = new ColumnDefinition();
$field = $columnDefinition->json('field')->generate();
// Result will be:
// $field = '`field` JSON';
En este ejemplo haremos uso de la función enum() para agregar un campo de tipo de cadena a la definición de la tabla. El método espera como parámetros el nombre del campo y un arreglo de valores.
$columnDefinition = new ColumnDefinition();
$field = $columnDefinition->enum('status', ['active', 'inactive'])->generate();
// Result will be:
// $field = '`status` enum(\'active\', \'inactive\')';
En este ejemplo haremos uso de la función blob() para agregar un campo de tipo de Blob a la definición de la tabla. El método espera como parámetros el nombre del campo.
$columnDefinition = new ColumnDefinition();
$field = $columnDefinition->blob('field')->generate();
// Result will be:
// $field = '`field` BLOB';
En este ejemplo haremos uso de la función tinyBlob() para agregar un campo de tipo de Blob a la definición de la tabla. El método espera como parámetros el nombre del campo.
$columnDefinition = new ColumnDefinition();
$field = $columnDefinition->tinyBlob('field')->generate();
// Result will be:
// $field = '`field` TINYBLOB';
En este ejemplo haremos uso de la función longBlob() para agregar un campo de tipo de Blob a la definición de la tabla. El método espera como parámetros el nombre del campo.
$columnDefinition = new ColumnDefinition();
$field = $columnDefinition->longBlob('field')->generate();
// Result will be:
// $field = '`field` LONGBLOB';
En este ejemplo haremos uso de la función char() para agregar un campo de tipo de cadena a la definición de la tabla. El método espera como parámetros el nombre del campo y el número de caracteres del campo.
$columnDefinition = new ColumnDefinition();
$field = $columnDefinition->char('name', 5)->generate();
// Result will be:
// $field = '`name` CHAR(5)';
En este ejemplo haremos uso de la función real() para agregar un campo de tipo de real a la definición de la tabla. El método espera como parámetros el nombre del campo, la precisión y la escala.
$columnDefinition = new ColumnDefinition();
$field = $columnDefinition->real('name', 10, 2)->generate();
// Result will be:
// $field = '`name` REAL(10,2)';
En este ejemplo haremos uso de la función set() para agregar un campo de tipo de conjunto a la definición de la tabla. El método espera como parámetros el nombre del campo y el conjunto de valores.
$columnDefinition = new ColumnDefinition();
$field = $columnDefinition->set('name', ['Value 1', 'Value 2'])->generate();
// Result will be:
// $field = '`name` SET(\'Value 1\', \'Value 2\')';
En este ejemplo haremos uso de la función default() para agregar un campo de tipo de valor por defecto a la definición de la tabla. El método espera como parámetros el nombre del campo y el valor por defecto. Como recomendación el valor de defecto debe ir después de crear el tipo de campo.
$columnDefinition = new ColumnDefinition();
$field = $columnDefinition->string('name')->default('default value')->generate();
// Result will be:
// $field = '`name` VARCHAR(255) DEFAULT 'default value';
En este ejemplo haremos uso de la función nullable() para agregar un campo de tipo de valor nulo a la definición de la tabla.
$columnDefinition = new ColumnDefinition();
$field = $columnDefinition->string('name')->nullable()->generate();
// Result will be:
// $field = '`name` VARCHAR(255) NULL';
En este ejemplo haremos uso de la función notNullable() para agregar un campo de tipo de valor no nulo a la definición de la tabla.
$columnDefinition = new ColumnDefinition();
$field = $columnDefinition->string('name')->notNullable()->generate();
// Result will be:
// $field = '`name` VARCHAR(255) NOT NULL';
En este ejemplo haremos uso de la función autoIncrement() para agregar un campo de tipo de valor auto incremental a la definición de la tabla.
$columnDefinition = new ColumnDefinition();
$field = $columnDefinition->integer('name')->autoIncrement()->generate();
// Result will be:
// $field = '`name` INT(11) AUTO_INCREMENT';
En este ejemplo haremos uso de la función primary() para agregar un campo de tipo de clave primaria a la definición de la tabla.
$columnDefinition = new ColumnDefinition();
$field = $columnDefinition->integer('name')->primary()->generate();
// Result will be:
// $field = '`name` INT(11) PRIMARY KEY';
En este ejemplo haremos uso de la función unique() para agregar un campo de tipo de valor unico a la definición de la tabla.
$columnDefinition = new ColumnDefinition();
$field = $columnDefinition->integer('name')->unique()->generate();
// Result will be:
// $field = '`name` INT(11) UNIQUE';
En este ejemplo haremos uso de la función index() para agregar un campo de tipo de indice a la definición de la tabla.
$columnDefinition = new ColumnDefinition();
$field = $columnDefinition->integer('name')->index()->generate();
// Result will be:
// $field = '`name` INT(11) INDEX';
En este ejemplo haremos uso de la función fullText() para agregar un campo de tipo fullText a la definición de la tabla.
$columnDefinition = new ColumnDefinition();
$field = $columnDefinition->fullText('field')->generate();
// Result will be:
// $field = '`field` FULLTEXT';
En este ejemplo haremos uso de la función comment() para agregar un comentario a la definición de la tabla. El método espera como parámetros el valor del comentario.
$columnDefinition = new ColumnDefinition();
$field = $columnDefinition->text('field')->comment('comment')->generate();
// Result will be:
// $field = '`field` TEXT' COMMENT 'comment';
En este ejemplo haremos uso de la función id() para agregar un campo de tipo de clave primaria a la definición de la tabla.
$columnDefinition = new ColumnDefinition();
$field = $columnDefinition->id()->generate();
// Result will be:
// $field = '`id` BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT';