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>
Setakat Laravel 5.1.25, gunakan pengubah lajur useCurrent():
<code class="php">$table->timestamp('created_at')->useCurrent();</code>
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>
Sejak Laravel 8.36.0, gunakan pengubah useCurrentOnUpdate():
<code class="php">$table->timestamp('updated_at')->useCurrent()->useCurrentOnUpdate();</code>
Gotchas:
<code class="php">$table->timestamp('created_at')->default(DB::raw('CURRENT_TIMESTAMP(0)'));</code>
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!