Laravel Cashier と Stripe を使用したサブスクリプション プラットフォームがあります。管理者がすべてのサブスクリプションの支払いと、サイトがサブスクリプションで生成した合計金額を確認できる管理者のバックエンドを作成しようとしています。次のように、(請求書を通じて)支払いのリストを大まかに取得できました。
// create an empty collection to hold the invoices
$users = User::whereNotNull('stripe_id')->get();
foreach($users as $user){
$user->invoices = $user->invoices();
}
これにより、すべてのユーザーの請求書が各ユーザーに追加され、ビューでそれらをループして、すべての請求書と支払額のリストを取得できます。
ここでの問題は、すべての請求書の合計サブスクリプション支払いを取得しようとすると、合計がゼロを返すことです。これは私が合計支払いを取得しようとする方法です:
$total_payments = $users->sum('invoices.total')
これは常に返されます0
。私もこのように書き直そうとしました。
$total_payments = $user->sum(function ($inv){
return $inv->invoices->sum('total')
}
これも を返します0
。これを行うためのより良い方法がわからない。L5.4を使用しています。