Maison >développement back-end >tutoriel php >Comment définir la valeur par défaut des colonnes d'horodatage sur CURRENT_TIMESTAMP et la mise à jour automatique dans les migrations Laravel ?
Définition de la valeur par défaut de la colonne d'horodatage sur l'horodatage actuel dans les migrations Laravel
Question : Comment puis-je créer un horodatage colonne avec une valeur par défaut de CURRENT_TIMESTAMP et la mettre à jour vers CURRENT_TIMESTAMP dans les migrations Laravel ?
Le générateur de schéma de Laravel ne fournit pas explicitement de méthode pour définir la valeur par défaut d'une colonne d'horodatage sur CURRENT_TIMESTAMP.
Réponse :
Pour définir la valeur par défaut sur CURRENT_TIMESTAMP, utilisez la méthode DB::raw() pour définir une expression brute :
$table->timestamp('created_at')->default(DB::raw('CURRENT_TIMESTAMP'));
Pour MySQL, vous pouvez utilisez en outre la clause ON UPDATE dans DB::raw():
$table->timestamp('updated_at')->default(DB::raw('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'));
Depuis Laravel 5.1.25, vous pouvez utiliser la méthode useCurrent() pour simplifier cela :
$table->timestamp('created_at')->useCurrent();
Dans Laravel 8.36.0 et supérieur, useCurrent() peut être utilisé avec la méthode useCurrentOnUpdate() pour les valeurs par défaut et lors de la mise à jour :
$table->timestamp('updated_at')->useCurrent()->useCurrentOnUpdate();
Gotchas :
$table->timestamp('created_at')->default(DB::raw('CURRENT_TIMESTAMP(0)'));
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!