私は自分自身で解決策を見つけることができなかったし、グーグルで解決することもできなかった。laravelのクエリを減らす
私のダッシュボードビューでは、$plans = Plan::all()
を実行するだけで支払い計画を表示し、それを表示に戻します。そこには何もない。しかし、私の実際のダッシュボードビューでは、実行されたトランザクションから合計金額をドルで表示したいと考えています。だから、私の見解で、私は次の(取り除か例)を行います。私のモデルから、次の方法を使用している
@foreach($plans as $plan)
{{ $plan->paidAmount() }}
@endforeach
:
基本的にはちょうどに、すべての関連取引の総量をつかむprivate function paidAmount()
{
return $this->transactions->sum('amount');
}
そのプランを作成し、ページに表示します。ただし、これは私の計画のそれぞれに対して新しいクエリを生成します。 5つのプランがあるとします。表示する必要がある各金額に対して5つの追加クエリが生成されます。
private function paidAmount()
{
return $this->amount - $this->paidAmount();
}
さらに5つのクエリを生成します。
同じことが、私が表示したい残量のために行きます。だから私はいくつかの情報を表示するシンプルなテーブルのために、11個の質問が実行されています。
元のクエリにpaidAmount
とremainingAmount
を含めることはできますか?私は方法があるべきであることを知っている、私はまだそれを見つけることができませんでした。線に沿っだから何か:あなたはこのように合計
を計算するために、このようなあなたのメインクエリ内のサブクエリを使用することができます
$plans = Plan::with('paidAmount')->get();
ありがとう、私は生のクエリについて詳しく知っていなければなりません。これは完全に機能します。 – Hardist