Maison > cadre php > Laravel > Quatre façons d'activer create_at dans Laravel ORM

Quatre façons d'activer create_at dans Laravel ORM

Libérer: 2021-08-19 09:00:45
avant
2954 Les gens l'ont consulté

La colonne suivante du didacticiel Laravelframework vous présentera plusieurs méthodes pour ouvrir uniquement create_at dans Laravel ORM. J'espère qu'elle sera utile aux amis qui en ont besoin !

Méthode 1 :

class User extends Model {
  public $timestamps = false;//关闭自动维护
  public static function boot() {
    parent::boot();
    #只添加created_at不添加updated_at
    static::creating(function ($model) {
      $model->created_at = $model->freshTimestamp();
      //$model->updated_at = $model->freshTimeStamp();
    });
  }
}
Copier après la connexion

Il y a un piège ici : la valeur decreated renvoyée lors de l'utilisation de la méthode create pour créer un enregistrement est comme ceci :

“created_at”: {
“date”: “2020-09-27 13:47:12.000000”,
“timezone_type”: 3,
“timezone”: “Asia/Shanghai”
},
Copier après la connexion

Ce n'est pas ce que vous imaginiez

“created_at”: “2020-09-27 13:49:39”,
Copier après la connexion

Méthode 2 :

class User extends Model {
  const UPDATED_AT = null;//设置update_at为null
  //const CREATED_AT = null;
}
Copier après la connexion

Il y a un piège ici : supprimer en utilisant destroy signalera une erreur

Missing argument 2 for Illuminate\Database\Eloquent\Model::setAttribute()
Copier après la connexion

Utiliser delete ne l'affectera pas, et which ne l'affectera pas

Méthode 3 :

class User extends Model {
  //重写setUpdatedAt方法
  public function setUpdatedAt($value) {
    // Do nothing.
  }
  //public function setCreatedAt($value)
  //{
    // Do nothing.
  //}
}
Copier après la connexion

Méthode 4 :

class User extends Model {
  //重写setUpdatedAt方法
  public function setUpdatedAtAttribute($value) {
    // Do nothing.
  }
  //public function setCreatedAtAttribute($value)
  //{
    // Do nothing.
  //}
}
Copier après la connexion

peut également être défini dans Migration (pas de détails spécifiques) Je l'ai essayé, vu dans d'autres articles)

class CreatePostsTable extends Migration {
  public function up() {
   Schema::create('posts', function(Blueprint $table) {
   $table->timestamp('created_at')
   ->default(DB::raw('CURRENT_TIMESTAMP'));
  });
}
Copier après la connexion

Recommandations associées : Les cinq derniers didacticiels vidéo Laravel

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal