updateorcreate update created_at create php laravel eloquent

php - update - Deshabilitar las marcas de tiempo Eloquent de Laravel



order by eloquent (5)

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 elocuente. 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.

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?


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.


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


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

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


Modelo elocuente:

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 = ''[email protected]''; $users->save();