Menetapkan Nilai Lalai Lajur Cap Masa kepada Cap Masa Semasa dalam Migrasi Laravel
Soalan: Bagaimanakah saya boleh mencipta cap masa lajur dengan nilai lalai CURRENT_TIMESTAMP dan kemas kini kepada CURRENT_TIMESTAMP dalam penghijrahan Laravel?
Pembina Skema Laravel tidak secara eksplisit menyediakan kaedah untuk menetapkan nilai lalai lajur cap waktu kepada CURRENT_TIMESTAMP.
Jawapan:
Untuk menetapkan nilai lalai kepada CURRENT_TIMESTAMP, gunakan kaedah DB::raw() untuk mentakrifkan ungkapan mentah:
$table->timestamp('created_at')->default(DB::raw('CURRENT_TIMESTAMP'));
Untuk MySQL, anda boleh selain itu gunakan klausa ON UPDATE dalam DB::raw():
$table->timestamp('updated_at')->default(DB::raw('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'));
Sehingga Laravel 5.1.25, anda boleh menggunakan kaedah useCurrent() untuk memudahkan ini:
$table->timestamp('created_at')->useCurrent();
Dalam Laravel 8.36.0 dan ke atas, useCurrent() boleh digunakan dengan kaedah useCurrentOnUpdate() untuk nilai lalai dan semasa kemas kini:
$table->timestamp('updated_at')->useCurrent()->useCurrentOnUpdate();
Gotchas:
$table->timestamp('created_at')->default(DB::raw('CURRENT_TIMESTAMP(0)'));
Atas ialah kandungan terperinci Bagaimanakah Saya Menetapkan Nilai Lalai Lajur Cap Masa kepada CURRENT_TIMESTAMP dan Kemas Kini Auto dalam Migrasi Laravel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!