Cómo establecer el valor predeterminado en la migración de Laravel
Podríamos encontrarnos con casos en los que necesitemos establecer un valor predeterminado para una columna en la migración de Laravel.
Estos son algunos casos de uso que pueden inspirarte a trabajar en tu aplicación Laravel.
Valor predeterminado
Nulo (anulable)
El primer valor predeterminado que podríamos necesitar es una columna anulable, que la establece en nulo en la creación.
$table->string('title')->nullable();
Cadena
Luego, otras veces queremos establecer un valor predeterminado, que es una cadena. pero esta columna nunca sería nula.
$table->string('title')->default('the default value');
Cadena predeterminada con una columna anulable
Si necesitamos una columna anulable predeterminada, pero proporcionamos un valor en la creación.
$table->string('title')->nullable('the default value');
Expresión predeterminada
A veces queremos establecer un valor en un valor json predeterminado, por lo que debemos desenvolverlo de las comillas. Por lo tanto, podemos usare Illuminate\Database\Query\Expression
.
La documentación de Laravel proporciona el ejemplo new Expression('(JSON_ARRAY())')
.
$table->json('movies')->default(new Expression('(JSON_ARRAY())'));
Esto puede ser una cadena o una matriz o cualquier cosa, con ayudantes en Laravel.
$table->string('title')->default(STR::plural('some value'))); $table->string('title')->default(Str::between('This', 'that', 'other'))));
Marca de tiempo actual predeterminada
Si necesitamos la hora actual, para que sea el valor p. de un nombre de columna, podemos usar.
$table->timestamp('published_time')->useCurrent();
Marca de tiempo actual predeterminada cuando actualizamos
$table->timestamp('published_time')->useCurrent()->useCurrentOnUpdate();
Valor p. para la columna existente
Si ya creamos un nombre de columna, pero queremos darle un valor p., podemos usar el método de cambio.
$table->string('title'); // we can change it to accept a default value $table->string('title')->default('the default value')->change();
Gracias por llegar hasta aquí, si encuentras esto útil no olvides dejar un👍🏼y suscribirse para recibir más contenido.
Si le interesa, puede echar un vistazo a algunos de los otros artículos que he escrito recientemente sobre AWS y Laravel: