Définition des valeurs d'horodatage par défaut à l'aide des migrations Laravel
Le Laravel Schema Builder fournit un moyen pratique de créer et de modifier des tables de base de données. Cependant, les utilisateurs rencontrent parfois des problèmes lors de la définition des valeurs d'horodatage par défaut sur l'horodatage actuel lors de la création et de la mise à jour.
La méthode timestamps()
En général, la méthode timestamps() est utilisé pour gérer automatiquement les colonnes d'horodatage Created_at et Updated_at. Cependant, cette méthode définit leurs valeurs par défaut sur « 0000-00-00 00:00:00 ».
Solution : DB::raw() et useCurrent()
Pour définir une valeur par défaut de CURRENT_TIMESTAMP, utilisez DB::raw():
$table->timestamp('created_at')->default(DB::raw('CURRENT_TIMESTAMP'));
À partir de Laravel 5.1.25, vous pouvez également utiliser la méthode useCurrent() :
$table->timestamp('created_at')->useCurrent();
Clause MySQL ON UPDATE
Pour MySQL, vous pouvez spécifier la clause ON UPDATE en utilisant DB::raw():
$table->timestamp('updated_at')->default(DB::raw('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'));
Depuis Laravel 8.36.0, vous pouvez utiliser useCurrentOnUpdate() en conjonction avec useCurrent():
$table->timestamp('updated_at')->useCurrent()->useCurrentOnUpdate();
Gotchas
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!