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

Susan Sarandon
Lepaskan: 2024-11-24 20:38:13
asal
905 orang telah melayarinya

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'));
Salin selepas log masuk

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();
Salin selepas log masuk
  • 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();
Salin selepas log masuk

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!

sumber:php.cn
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