📜  获取关系表 laravel 的计数 - PHP (1)

📅  最后修改于: 2023-12-03 15:41:27.465000             🧑  作者: Mango

获取关系表 laravel 的计数

在 Laravel 中,关系模型可以通过 withCount 方法轻松地获取与之关联的模型记录数量。这将返回一个带有计数值的属性,可以方便地用于排序、筛选等操作。

方法
$posts = App\Post::withCount('comments')->get();

在示例中,Post 模型关联了 Comment 模型。使用 withCount 方法将会返回包含 comments_count 属性的 Post 对象。

可以使用 orderBy 方法对计数值进行排序:

$posts = App\Post::withCount('comments')->orderBy('comments_count', 'desc')->get();

在此示例中,$posts 变量将包含所有 Post 记录,按评论数量从高到低排序。

也可以通过 whereHas 方法进行筛选操作:

$posts = App\Post::withCount('comments')->whereHas('comments', function ($query) {
    $query->where('approved', true);
})->get();

此示例中,$posts 变量将包含所有包含至少一个已批准评论的 Post 记录,并且每个记录将包含评论计数值。

结论

withCount 方法是 Laravel Eloquent ORM 中一个非常方便的特性,可以轻松地获取任何关系模型的记录数量,并进行排序、筛选等操作。