もがき系プログラマの日常

もがき系エンジニアの勉強したこと、日常のこと、気になっている技術、備忘録などを紹介するブログです。

リレーション先のレコード件数を取得する

はじめに

こんばんは。

今回も恥ずかしくも知らなかった件です。

本題

今までリレーション先のレコード数を確認するのって with() とかで指定してとってきたコレクションをcountしていました。

ただ、laravelでは withCount() ってのを提供していました。

readouble.com

<?php

$team = Team::query()->withCount(['users'])->where('id', $teamId)->firstOrFail();
dd($team->users_count); ← n件

便利なもんですね。。。 また、公式にものってたのですが、 withMin() withMax() withSum() とかよく使う系のものがいっぱいありました。

でもこれって Collectionでもおんなじこと簡単にできますよね??

phpでやるかDBでやるかどっちがいいんだろうと思いました。

結局自分の結論は 件数が多ければ DB 少なければ php という感じにしておきました。

終わりに

他にもいろんな知らないところいっぱいありそうです。。。

恥をかきつつ今日も勉強勉強。

現場からは以上です。

PS.

vue3おもろい