web-dev-qa-db-fra.com

Laravel timestamps () ne crée pas CURRENT_TIMESTAMP

J'ai une migration qui a la méthode timestamps(), et puis j'ai une graine pour ensemencer cette table.

Schema::create('mytable', function (Blueprint $table) {
    $table->increments('id');
    $table->string('title');
    $table->timestamps();
});

La graine ressemble à ceci:

DB::table('mytable')->insert([
    [
        'title' => 'My Awesome Title'
    ]
]);

Quand tout est exécuté en utilisant:

php artisan migrate:refresh --seed

L'élément est inséré, mais les valeurs de created_at et updated_at sont toutes les deux 0000-00-00 00:00:00. Pourquoi ne sont-elles pas définies correctement?

voici les schémas de colonnes qu'il crée:

`created_at` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00',
`updated_at` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00',

Je voudrais ces régimes:

`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
10
Get Off My Lawn

Pour les versions ultérieures, vous pouvez simplement utiliser. ( la source )

$table->timestamp('created_at')->useCurrent();
$table->timestamp('updated_at')->useCurrent();
2
bmatovu

je voudrais utiliser la bibliothèque de carbone si je sème dans les horodatages et le mettre en place dans l'usine. Si vous ne pouviez pas faire quelque chose comme ceci:

$timestamps = false;

et je supprimerais la $table->timestamps(); de la migration si je ne l’utilise pas.

0
Sari Yono