Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Menetapkan Cap Masa Laravel kepada CURRENT_TIMESTAMP PADA KEMASKINI CURRENT_TIMESTAMP?

Bagaimana untuk Menetapkan Cap Masa Laravel kepada CURRENT_TIMESTAMP PADA KEMASKINI CURRENT_TIMESTAMP?

DDD
Lepaskan: 2024-10-20 12:17:02
asal
377 orang telah melayarinya

How to Set Laravel Timestamps to CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP?

Tamp Masa Lalai dengan Migrasi Laravel

Pembina Skema Laravel memudahkan manipulasi skema pangkalan data, tetapi menetapkan nilai lalai lajur cap waktu kepada cap masa semasa boleh menjadi satu cabaran.

Masalah:

Dalam Laravel, cap waktu() menjana lajur cap masa dengan nilai lalai 0000-00-00 00:00. Bagaimanakah kita boleh menetapkan lalai ini kepada CURRENT_TIMESTAMP PADA KEMASKINI CURRENT_TIMESTAMP menggunakan migrasi Laravel?

Penyelesaian:

Untuk menentukan CURRENT_TIMESTAMP sebagai nilai lalai untuk lajur cap waktu, gunakan DB: :raw():

<code class="php">$table->timestamp('created_at')->default(DB::raw('CURRENT_TIMESTAMP'));</code>
Salin selepas log masuk

Setakat Laravel 5.1.25, gunakan pengubah lajur useCurrent():

<code class="php">$table->timestamp('created_at')->useCurrent();</code>
Salin selepas log masuk

Untuk klausa ON UPDATE, kita boleh menggunakan DB::raw ():

<code class="php">$table->timestamp('updated_at')->default(DB::raw('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'));</code>
Salin selepas log masuk

Sejak Laravel 8.36.0, gunakan pengubah useCurrentOnUpdate():

<code class="php">$table->timestamp('updated_at')->useCurrent()->useCurrentOnUpdate();</code>
Salin selepas log masuk

Gotchas:

  • MySQL: Sejak versi 5.7, 0000-00-00 00:00:00 bukan lagi tarikh yang sah. Tetapkan lalai yang sah atau gunakan cap waktu nullable().
  • PostgreSQL & Laravel 4.x: Tentukan ketepatan sifar untuk CURRENT_TIMESTAMP untuk mengelakkan isu penghuraian mikrosaat.
<code class="php">$table->timestamp('created_at')->default(DB::raw('CURRENT_TIMESTAMP(0)'));</code>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Menetapkan Cap Masa Laravel kepada CURRENT_TIMESTAMP PADA KEMASKINI CURRENT_TIMESTAMP?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan