Maison > base de données > tutoriel mysql > le corps du texte

Comment définir les valeurs d'horodatage par défaut dans les migrations Laravel ?

Mary-Kate Olsen
Libérer: 2024-11-22 14:59:13
original
797 Les gens l'ont consulté

How to Set Default Timestamp Values in Laravel Migrations?

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'));
Copier après la connexion

À partir de Laravel 5.1.25, vous pouvez également utiliser la méthode useCurrent() :

$table->timestamp('created_at')->useCurrent();
Copier après la connexion

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'));
Copier après la connexion

Depuis Laravel 8.36.0, vous pouvez utiliser useCurrentOnUpdate() en conjonction avec useCurrent():

$table->timestamp('updated_at')->useCurrent()->useCurrentOnUpdate();
Copier après la connexion

Gotchas

  • MySQL : Depuis MySQL 5.7, « 0000-00-00 00:00:00 » n'est pas valide. Utilisez useCurrent() ou rendez les horodatages nullables.
  • PostgreSQL et Laravel 4.x : Utilisez CURRENT_TIMESTAMP(0) pour garantir une précision nulle et éviter les problèmes d'analyse de Carbon.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal