Laravelで**記事を更新する処理(update)**を書いている際に起こったエラーです。原因は単純なことだったのですが、エラー解消に2日ほど時間がかかってしまったので共有したいと思いました。
## 環境
・PC: Macbook Pro 2017
・Laravel 5.8
・PHP 7.4.15
・Mysql 5.7.34
## 原因
更新したい記事を取得する際にEloquentで取得したレコードとクエリビルダで取得したレコードの型が違うことが原因でした。
色々な方の記事を参考にしてアップデートの処理を書いていたため、上記のことを理解しておらずハマりました。
Eloquent
$rsv = Book::where('user_id','=',$user)
->orderBy('created_at','desc')
->first();
Eloquentで返すレコード(object(Illuminate\Support\Collection)
クエリビルダ
$rsv = DB::table('books')
->where('user_id','=',$user)
->orderBy('created_at','desc')
->first();
クエリビルダで返すレコード(array(n) { [0]=> object(stdClass)
僕の場合はEloquentで処理を書いていたので、クエリビルダではなくEloquentのモデルを使ってデータを取得しなければならなかったということです。
お役に立てたら嬉しいです。