やりたいことは Eager ローディングで count() を使った集計です。
Laravel 5.6 です。
テーブルが複数あり、Eager ローディングでネストもしている状態です。
- Requests テーブルは Shops テーブルとリレーション
- Shopsテーブルは Uniforms と、Allowances テーブルとリレーション
php
1$items = Requests::with([ 2 'shops', 3 'shops.uniforms:loan,bonus', 4 'shops.allowances:delete_flg' 5 ])->get()
上記の記述でデータは問題なく取得できるのですが、ここから集計をしたいと思っています。
ひとつの受付No. に対し、複数の商品があるとイメージして下さい。
その場合、ひとつの受付No. に対し、商品が何件あるかを取得したいのです。
count(requests.receive_no) AS cnt
Eager ローディングでは難しい場合、leftjoin, selectRaw を使って書くしかないのかなと思っています。
急ぎで書いたので何か見落としていたらすみません。
ご教示のほど、よろしくお願い致します。