我在解决这个问题时遇到了问题。
我有两个表:
Users
+---------+
| id name |
+---------+
| 1 John |
| 2 Ann |
| 3 Joe |
+---------+
Products
+---------------------+
| id product users_id |
+---------------------+
| 1 Bread 1 |
| 2 Apple 1 |
| 3 Egg 2 |
| 4 Juice 3 |
| 5 Cheese 3 |
| 6 Carrot 3 |
+---------------------+
我想查询一个查询,该查询将显示用户以及产品表中引用该用户的文章数。像这样:
+----------------------+
| name sum_of_products |
+----------------------+
| Ivan 2 |
| Ann 1 |
| Joe 3 |
+----------------------+
我有工作模型和关系。
我可以这样查询一个用户
$sum = User::whereId(1)->products()->count();
但是如何选择一个查询中的所有用户并获得所有计数呢?
最佳答案
您可以通过以下方式获得所需的东西:
$users = User::leftJoin('products', 'users.id', '=', 'products.user_id')->select('user_id', 'user.name')->selectRaw('count(*) as cnt')->groupBy('products.user_id')->get();
然后,您可以像这样访问计数和用户:
foreach($users as $user) {
$username = $user->name;
$productCount = $user->cnt;
...; //do whatever you need with that data
}
关于php - Laravel-显示Collection中的项目及其相关表中的总和,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31693123/