現在、Web アプリケーションの 1 つを CodeIgniter から Laravel に変換する作業を行っています。ただし、このすべてをより詳細に実行するログ クラスが既にあるため、現時点ではすべてのテーブルにupdated_at
/created_at
フィールドを追加したくありません。
私は、次のことができることを認識しています$timestamps = false;
:
Vendor\laravel\framework\src\illuminate\Datebase\Eloquent\Model.php
ただし、Laravel のコア ファイルを変更したり、すべてのモデルの先頭にそのファイルを配置したりすることは避けたいです。他の場所ですべてのモデルに対してこれを無効にする方法はありますか?
ベストアンサー1
すべてのモデルで宣言するかpublic $timestamps = false;
、BaseModel を作成してそこに定義し、すべてのモデルで Eloquent の代わりにそれを拡張する必要があります。Eloquent を使用している場合は、ピボット テーブルにタイムスタンプが必ず含まれていることに注意してください。
更新: Laravel v3 以降では、ピボット テーブルにタイムスタンプは必須ではなくなったことに注意してください。
更新:$table->timestamps()
移行から削除することでタイムスタンプを無効にすることもできます。