Deshabilitar las marcas de tiempo Eloquent de Laravel

Estoy en el proceso de convertir una de nuestras aplicaciones web de CodeIgniter a Laravel. Sin embargo, en este momento no queremos agregar los campos updated_at / created_at a todas nuestras tablas, ya que tenemos una clase de registro que hace todo esto con más profundidad para nosotros.

Soy consciente de que puedo establecer $timestamps = false; en:

 Vendor\laravel\framework\src\illuminate\Datebase\Eloquent\Model.php 

Sin embargo, prefiero no cambiar un archivo principal para Laravel, o hacer que todos mis modelos tengan eso en la parte superior. ¿Hay alguna forma de desactivar esto en otro lugar para todos los modelos?

O bien debe declarar public $timestamps = false; en cada modelo, o cree un BaseModel, defínalo allí y haga que todos sus modelos lo extiendan en lugar de eloquent. Apenas tener en cuenta las tablas dinámicas DEBEN tener marcas de tiempo si estás usando Eloquent.

Actualización: Tenga en cuenta que las marcas de tiempo ya no son NECESARIAS en las tablas dinámicas después de Laravel v3.

Actualización: también puede desactivar las marcas de tiempo eliminando $table->timestamps() de su migración.

Simplemente coloque public $timestamps = false; en tu modelo.

Si solo necesita desactivar la actualización actualizada, simplemente agregue este método a su modelo.

 public function setUpdatedAtAttribute($value) { // to Disable updated_at } 

Esto anulará el método padre setUpdatedAtAttribute (). created_at funcionará como de costumbre. De la misma forma que puede escribir un método para deshabilitar la actualización created_at solamente.

setUpdatedAt() las funciones setUpdatedAt() y getUpdatedAtColumn() en su modelo

 public function setUpdatedAt($value) { //Do-nothing } public function getUpdatedAtColumn() { //Do-nothing } 

Modelo eloquent:

 class User extends Model { protected $table = 'users'; public $timestamps = false; } 

O simplemente prueba esto

 $users = new Users(); $users->timestamps = false; $users->name = 'John Doe'; $users->email = 'johndoe@example.com'; $users->save();