Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menetapkan Cap Masa Lalai dan Cap Masa Auto-Kemas Kini dalam Migrasi Laravel?

Bagaimana untuk Menetapkan Cap Masa Lalai dan Cap Masa Auto-Kemas Kini dalam Migrasi Laravel?

Susan Sarandon
Susan Sarandonasal
2024-11-24 20:38:13989semak imbas

How to Set Default Timestamps and Auto-Update Timestamps in Laravel Migrations?

Menetapkan Cap Masa Semasa sebagai Lalai untuk Lajur Cap Masa dalam Migrasi Laravel

S: Bagaimanakah saya boleh mengkonfigurasi lajur cap masa dalam Migrasi Laravel untuk lalai kepada cap masa semasa dengan pilihan untuk mengemas kini dirinya mengikut nilai berubah?

J: Pembina Skema Laravel menyediakan kaedah mudah untuk mencapai ini:

$table->timestamp('created_at')->default(DB::raw('CURRENT_TIMESTAMP'));
$table->timestamp('updated_at')->default(DB::raw('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'));

DB::raw ialah digunakan untuk mencipta ungkapan mentah, membolehkan kami menetapkan CURRENT_TIMESTAMP sebagai lalai. Penyelesaian ini berfungsi dengan berkesan merentas pelbagai pemacu pangkalan data.

Peningkatan dalam Laravel:

  • useCurrent() (tersedia daripada Laravel 5.1.25 ): Memudahkan tetapan nilai lalai kepada cap masa semasa, menggantikan DB::raw('CURRENT_TIMESTAMP').
$table->timestamp('created_at')->useCurrent();
  • useCurrentOnUpdate() (tersedia daripada Laravel 8.36.0): Adds keupayaan untuk mengemas kini cap masa apabila nilai berubah bersama-sama useCurrent().
$table->timestamp('updated_at')->useCurrent()->useCurrentOnUpdate();

Awas:

MySQL (5.7 dan ke atas):

Pastikan untuk memberikan nilai lalai yang sah pada lajur cap masa untuk mengelakkan masalah yang mungkin berlaku dengan tarikh tidak sah (mis., 0000-00-00 00:00:00). Gunakan useCurrent() atau jadikan lajur boleh batal.

PostgreSQL dengan Laravel 4.x:

  • Ketepatan lalai lajur cap waktu boleh membawa kepada tingkah laku yang tidak dijangka.
  • Gunakan CURRENT_TIMESTAMP(0) atau kemas kini kepada Laravel 5.0 untuk menggunakan ketepatan lalai sifar dan elakkan isu ini.

Atas ialah kandungan terperinci Bagaimana untuk Menetapkan Cap Masa Lalai dan Cap Masa Auto-Kemas Kini dalam Migrasi Laravel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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