Saya sedang dalam proses mengubah salah satu aplikasi web kami dari CodeIgniter ke Laravel. Namun saat ini kami tidak ingin menambahkan updated_at
/ created_at
bidang ke semua tabel kami karena kami memiliki kelas logging yang melakukan semua ini secara lebih mendalam bagi kami.
Saya sadar saya dapat mengatur $timestamps = false;
:
Vendor\laravel\framework\src\illuminate\Datebase\Eloquent\Model.php
Namun saya lebih suka tidak mengubah file inti untuk Laravel, atau memiliki semua model saya memiliki yang di atas. Apakah ada cara untuk menonaktifkan ini di tempat lain untuk semua model?
Cukup letakkan baris ini di Model Anda :
public $timestamps = false;
Dan itu dia!
Contoh:
Untuk menonaktifkan cap waktu untuk satu operasi (mis. Dalam pengontrol):
Untuk menonaktifkan cap waktu untuk semua Model Anda , buat
BaseModel
file baru :Kemudian rentangkan masing-masing Model Anda dengan
BaseModel
, seperti:sumber
Jika Anda hanya perlu menonaktifkan pemutakhiran updated_at cukup tambahkan metode ini ke model Anda.
Ini akan menimpa metode setUpdatedAtAttribute () induk. Created_at akan berfungsi seperti biasa. Dengan cara yang sama Anda dapat menulis metode untuk menonaktifkan pembaruan yang dibuat saja.
sumber
Jika Anda menggunakan 5.5.x:
Dan untuk bidang 'Created_at', Anda dapat menggunakan:
Pastikan Anda berada di versi terbaru. (Ini rusak di Laravel 5.5.0 dan diperbaiki lagi di 5.5.5).
sumber
Model Mahir:
Atau Cukup coba ini
sumber
Jika Anda ingin menghapus cap waktu dari model yang ada, seperti yang disebutkan sebelumnya, letakkan ini di Model Anda:
Juga buat migrasi dengan kode berikut dalam
up()
metode dan jalankan:Anda dapat menggunakan metode
$table->timestamps()
Andadown()
untuk memungkinkan memutar kembali.sumber
cukup deklarasikan
public
variabel cap waktu diModel
tofalse
dan semuanya akan bekerja dengan baik.public $timestamps = false;
sumber
Tambahkan baris ini ke dalam model Anda:
sumber
Ganti fungsi
setUpdatedAt()
dangetUpdatedAtColumn()
dalam model Andasumber
Anda dapat menonaktifkan cap waktu sementara
sumber