En este post sobre Laravel y bases de datos veremos cómo insertar datos al momento de realizar la migración (proceso en el cual se crean o modifican tablas de la base de datos).
Esto puede servir para cuando tenemos que insertar datos por defecto o datos que solo se deben insertar una vez (por ejemplo, durante la instalación del sistema).
Personalmente utilicé este método para insertar el cliente “Mostrador” en una modificación que estoy haciendo al punto de venta en Laravel.
Creando la migración
Comenzamos creando la migración usando artisan:
php artisan make:migration NombreDeMigracion --table=la_tabla_que_modificas
En mi caso es:
php artisan make:migration CrearPrimerCliente --table=clientes
Insertando datos
Ahora dentro de la migración, dentro del método up
vamos a implementar el código que inserta los datos en Laravel. No lo debemos hacer dentro de la función que es el segundo argumento de Schema::table
, sino afuera:
<?php
DB::table("clientes")
->insert([
"nombre" => "Mostrador",
"telefono" => "0123456789",
]);
Como ves estoy usando al Facade de DB. Si tú tienes otro método puedes usarlo. De este modo cuando se realice la migración, se van a insertar esos datos.
Para terminar te muestro mi migración completa.
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
class CrearPrimerCliente extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('clientes', function (Blueprint $table) {
//
});
DB::table("clientes")
->insert([
"nombre" => "Mostrador",
"telefono" => "0123456789",
]);
}
/**
* Reverse the migrations.
*
* @return void
*/
public
function down()
{
Schema::table('clientes', function (Blueprint $table) {
//
});
}
}
Nota: no olvides que si haces esto, después debes ejecutar php artisan migrate
para que los datos se inserten.