概要
Laraveのデフォルトでモデルとマイグレーションファイルを作成すると、マイグレーションファイルには$table->timestamps
が自動的に記述され、マイグレートするとcreated_at
、updated_at
の2つのカラムがtimestamp
型で定義される。
ここでは、これらのタイムスタンプを生成させない方法をまとめる。
- マイグレーションファイルの該当文を削除orコメントアウト
- モデルでタイムスタンプを生成させないよう記述を追加
マイグレーションファイルの編集
マイグレーションファイル生成時に自動で記述される$table->timestamps()
を削除するかコメントアウトする。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
class CreateTestModelsTable extends Migration { public function up() { Schema::create('test_models', function (Blueprint $table) { $table->bigIncrements('id'); $table->string('product_name', 20); $table->integer('amount'); // $table-timestamps(); →削除してもよい }); } ........ } |
モデルへのタイムスタンプ抑制の記述
マイグレーションファイルからタイムスタンプの行を消しても、モデルをデータベースに登録しようとするとモデル側でタイムスタンプを生成し、データベースに対応するカラムがないとしてエラーになる。
そこで、モデルにタイムスタンプの生成を抑制する記述を追加する。
1 2 3 4 |
class TestModel extends Model { public $timestamps = false; } |