LaravelでDB::rawの使い方とサンプルコード

LaravelでDB::rawの使い方とサンプルコード

98 回閲覧されました

みなさんこんにちは、jonioです。

時々DB::rawを使うのですがいつ使うかをすぐ忘れるので今回の記事はすぐ思い出す為のメモです。

SQLを使わないといけない時に使う

例えばその日に使ったお金を全て取得したかったとします。

$date = $request->query('date', Carbon::today()->format('Y-m-d'));

$monthly_total_price = CategoryPrice::whereYear('stamp_date', Carbon::parse($date)->year)->whereMonth('stamp_date', Carbon::parse($date)->month)->sum('price');

合計金額を取得するのにsumメソッドを使えばいいのでSQLを使う必要はありません。

しかし月毎のカテゴリーに対する金額を取得する場合はsumメソッドを使えなくてSQLを書くしかないです。

この場合にDB::rawを使います。

$monthly_total_price_by_category = CategoryPrice::whereYear('stamp_date', Carbon::parse($date)->year)
                                                ->whereMonth('stamp_date', Carbon::parse($date)->month)
                                                ->select('category_id', DB::raw('SUM(price) as total_price'))
                                                ->groupBy('category_id')
                                                ->get();