LaravelでDBテーブルをupdateした時に、同時に更新した値を取得する裏技[Laravel8]

Laravel

通常Eloquentのsaveupdateでは、実行時に更新した値の結果を返してくれない

しかし、テーブルの値をupdateした時に結果を同時に返して欲しい時がある

「わざわざそのためにselectとかしたくない」

そんな時の裏技

$item = tap(Item::where('id', $item_id))
            ->update(['name' => 'speaker'])
            ->first();

こうすることで$itemには更新したモデルインスタンスが格納される

参考

https://stackoverflow.com/questions/43093965/return-collection-after-update