我有一个带有 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();
}
Run Code Online (Sandbox Code Playgroud)
这会将所有用户的发票添加到每个用户,然后我可以在我的视图中遍历它们以获取所有发票和支付金额的列表。
现在的问题是,当我尝试获取所有发票的订阅付款总额时,总和返回零。这就是我尝试获得总付款的方式:
$total_payments = $users->sum('invoices.total')
Run Code Online (Sandbox Code Playgroud)
这0总是返回。我也试过重写这个。
$total_payments = $user->sum(function ($inv){
return $inv->invoices->sum('total')
}
Run Code Online (Sandbox Code Playgroud)
这也返回0。不确定有更好的方法来做到这一点。我正在使用 L5.4。
所以我有这些表:
-- tbl_obs
id lat lon created
-------------------------
1 1.2 -2.1 2002-08-03
2 1.9 -5.5 2002-08-03
3 1.5 -4.1 2002-08-03
-- tbl_obsdata
id name value obs_id
---------------------------------
1 gender Male 1
2 type Type I 1
3 description Some desc 1
4 gender Female 2
5 type Type II 2
6 description Some desc 2
7 gender Female 3
8 type Type II 3
9 description Some desc 3
Run Code Online (Sandbox Code Playgroud)
我想要一个查询,它将合并来自两个表的数据,如下所示:
lat lon created gender type description
------------------------------------------------
1.2 -2.1 2002-08-03 …Run Code Online (Sandbox Code Playgroud)