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();