登録日:
2025-02-02
最終更新日:
2025-03-19
Laravel の モデルで created_at や updated_at カラムがないテーブルの場合
Laravel の Eloquentモデルで created_at や updated_at が存在しないテーブルを扱う場合、以下の方法で対応できます。
方法1: $timestamps = false を設定する
Eloquent モデルで created_at や updated_at を無効化する場合、モデル内で $timestamps = false を設定します。 この設定により、Eloquentは created_at や updated_at を自動的に管理しなくなります。
例:app\Models\Sample.php
use Illuminate\Database\Eloquent\Model;
class Sample extends Model
{
public $timestamps = false; // タイムスタンプを無効化
}
方法2: $timestamps = true のまま updated_at だけ無効化する
created_at は管理しつつ、updated_at だけ無効化したい場合は、const UPDATED_AT = null; を追加します。
例:app\Models\Sample.php
use Illuminate\Database\Eloquent\Model;
class Sample extends Model
{
const UPDATED_AT = null; // updated_atのみ無効化
}
方法3: マイグレーションで timestamps() を使わない
テーブルを作成するときに timestamps() を使わず、created_at だけ定義する方法もあります。
Schema::create('samples', function (Blueprint $table) {
$table->id();
$table->string('name');
// updated_at は作らない
$table->timestamp('created_at')->nullable();
});