Le générateur de schéma de Laravel simplifie la manipulation du schéma de base de données, mais définir la valeur par défaut d'une colonne d'horodatage sur l'horodatage actuel peut être un défi.
Problème :
Dans Laravel, timestamps() génère des colonnes d'horodatage avec une valeur par défaut de 0000-00-00 00:00. Comment pouvons-nous définir cette valeur par défaut sur CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP à l'aide des migrations Laravel ?
Solution :
Pour spécifier CURRENT_TIMESTAMP comme valeur par défaut pour une colonne d'horodatage, utilisez DB : :raw():
<code class="php">$table->timestamp('created_at')->default(DB::raw('CURRENT_TIMESTAMP'));</code>
À partir de Laravel 5.1.25, utilisez le modificateur de colonne useCurrent() :
<code class="php">$table->timestamp('created_at')->useCurrent();</code>
Pour les clauses ON UPDATE, nous pouvons utiliser DB::raw ():
<code class="php">$table->timestamp('updated_at')->default(DB::raw('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'));</code>
Depuis Laravel 8.36.0, utilisez le modificateur useCurrentOnUpdate() :
<code class="php">$table->timestamp('updated_at')->useCurrent()->useCurrentOnUpdate();</code>
Gotchas :
<code class="php">$table->timestamp('created_at')->default(DB::raw('CURRENT_TIMESTAMP(0)'));</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!