1. ホーム
  2. php

[解決済み】LaravelのEloquentタイムスタンプを無効にする

2022-04-02 03:10:13

質問

あるウェブアプリケーションをCodeIgniterからLaravelに変換している最中です。しかし、今のところ、私たちは updated_at / created_at フィールドをすべてのテーブルに追加することができます。これは、ロギングクラスがすでにこのようなことを深く行ってくれているからです。

を設定できることは承知しています。 $timestamps = false; にあります。

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

しかし、Laravelのコアファイルを変更したり、すべてのモデルにそれをトップに表示させることはしたくありません。すべてのモデルでこれを無効にする方法はないでしょうか?

解決方法は?

のどちらかを宣言する必要があります。 public $timestamps = false; をすべてのモデルで使用するか、BaseModelを作成してそこで定義し、すべてのモデルがeloquentの代わりにそれを継承するようにします。 Eloquentを使用する場合、ピボットテーブルには必ずタイムスタンプが必要であることを覚えておいてください。

更新:Laravel v3以降、ピボットテーブルでタイムスタンプが必須ではなくなったことに注意してください。

更新: タイムスタンプを無効化するには $table->timestamps() をマイグレーションから削除してください。