【Laravel】updated_atカラムがないテーブルをEloquentモデルを用いて更新するときの注意点

備忘録として残します。

Eloquentモデルを用いて更新をかけるとき下記のような記述をすると思います。

HogeTable::find($id)->fill($input)->save();

このときLaravelはEloquentモデルで更新しようとしたとき、暗黙的にupdated_atというカラムも同時に更新しようとします。

しかし、updated_atというカラムがない場合は、エラーをはくので、この暗黙的にタイムスタンプをする機能をオフにする方法が下記になります。


■やり方


namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class HogeTable extends Model
{
public $timestamps = false; // この行をEloquentモデルに追記
protected $table = 'hoge';
}