php - Laravel - 显示 Collection 中的项目及其相关表中的总和

标签 php mysql laravel collections laravel-5

我在思考这个问题时遇到了问题。

我有两个表:

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();

但我如何才能选择所有用户并在一次查询中获取他们的所有计数?

最佳答案

laravels 访问器功能怎么样?

您的用户模型应如下所示:

namespace App;

class User extends Model
{

    protected $appends = array('sum_of_products');

    public function getSumOfProductsAttribute() {

        return $this->products()->count();
    }
}

查看 docu

关于php - Laravel - 显示 Collection 中的项目及其相关表中的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31693123/

相关文章:

php - 如何使用PHP正确保存MYSQL表中的html内容

mysql - 从两个表连接中获取前两条唯一记录 - Mysql

php - 路由到 View 而不传递变量 - laravel

Laravel `between app->bind` 和 `app->singleton` 的区别?

php - Laravel Dusk - 无法连接到本地主机端口 9515 : Connection refused

php - 类似于 PHP 的 Crystal Reports 之类的东西?

php - 为什么 ltrim 在第二个参数包含运算符符号时删除一个字符?

mysql - SQL 按数字排序并保持分组

php - 如何使用php将整数存储到MySQL数据库?

php - 如何获取 Laravel 删除/更新/插入语句的原始 SQL?