
あきぞらです。
LaravelのEloquentを使っていて、
updated_atやcreated_atなどのカラムがないテーブルを更新したいときがありました。
そのままでsaveなどの関数を使ってしまうと、
エラーになってしまいます。
そこで今回は、updated_atやcreated_atなどのカラムがないテーブルを更新する方法について紹介していきます。
$timestampsをfalseに設定する
updated_atやcreated_atなどのカラムがないテーブルや、
(そのような場合があるか分かりませんが、)更新したくない場合、
public $timestamps = false;
の記述をいれることで実装ができます。
下記にBookというモデルの記述例を出します。
class Book extends Model
{
protected $table = 'books';
public $timestamps = false;
protected $fillable = [
'name',
'price',
];
}
これで、このモデルに紐づいているbooksというテーブルは
updated_at、created_atの更新は考えなくてもよくなります。