Bagaimanakah Saya Menetapkan Cap Masa Lalai kepada Cap Masa Semasa dalam Migrasi Laravel?

Barbara Streisand
Lepaskan: 2024-10-20 11:40:02
asal
538 orang telah melayarinya

How Do I Set the Default Timestamp to the Current Timestamp in Laravel Migrations?

Migrasi Laravel: Menetapkan Cap Masa Lalai kepada Cap Masa Semasa

Dalam Laravel, cap masa biasanya digunakan untuk menjejak aktiviti, seperti semasa rekod dibuat atau dikemas kini. Secara lalai, cap masa ini ditetapkan kepada 0000-00-00 00:00. Walau bagaimanapun, adalah berguna untuk menetapkan nilai lalai secara automatik kepada cap masa semasa.

Menggunakan DB::raw()

Untuk cap masa yang anda ingin kemas kini dengan kerap, anda boleh menggunakan DB ::raw() berfungsi untuk menentukan CURRENT_TIMESTAMP sebagai nilai lalai:

$table->timestamp('created_at')->default(DB::raw('CURRENT_TIMESTAMP'));
Salin selepas log masuk

Ini memastikan bahawa lajur create_at akan sentiasa mengandungi cap masa semasa, kedua-dua apabila rekod dibuat pada mulanya dan apabila ia dikemas kini.

Menggunakan useCurrent() atau useCurrentOnUpdate()

Sebagai alternatif, anda boleh menggunakan kaedah useCurrent() atau useCurrentOnUpdate() untuk mencapai hasil yang sama:

$table->timestamp('created_at')->useCurrent();
$table->timestamp('updated_at')->useCurrentOnUpdate();
Salin selepas log masuk

The useCurrent () kaedah menetapkan cap masa semasa sebagai nilai lalai untuk kedua-dua penciptaan dan kemas kini, manakala useCurrentOnUpdate() menetapkan nilai lalai untuk kemas kini sahaja.

Klausa MySQL ON UPDATE

Untuk MySQL, anda boleh gunakan klausa ON UPDATE dalam DB::raw():

$table->timestamp('updated_at')->default(DB::raw('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'));
Salin selepas log masuk

Gotchas

  • MySQL: Sejak MySQL 5.7, anda mungkin perlu menetapkan secara eksplisit nilai lalai yang sah untuk lajur cap masa, kerana 0000-00-00 00:00:00 tidak lagi diterima.
  • PostgreSQL & Laravel 4.x: Dalam Laravel 4.x, anda mungkin mengalami masalah dengan menghurai cap masa jika anda menggunakan CURRENT_TIMESTAMP dengan ketepatan lalai. Gunakan CURRENT_TIMESTAMP(0) sebaliknya untuk mengelakkan perkara ini.

Atas ialah kandungan terperinci Bagaimanakah Saya Menetapkan Cap Masa Lalai kepada Cap Masa Semasa dalam Migrasi Laravel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!