首页 > 解决方案 > 在laravel中获取具有计数的外键的不同数据

问题描述

我在 laravel 中从 mysql 计算不同的值时遇到问题。

项目模型:

public function projectNotes()
{
    return $this->hasMany(ProjectNote::class, 'project_id');
}

项目注模型:

public function project()
{
    return $this->belongsTo(Project::class, 'project_id');
}

数据库“project_notes”表:

id  project_id  note
1      1        Project 1 Note 1
2      1        Project 1 Note 2
3      1        Project 1 Note 3
4      1        Project 1 Note 4
5      2        Project 2 Note 1
6      2        Project 2 Note 2
7      2        Project 2 Note 3
8      3        Project 3 Note 1
9      3        Project 3 Note 2
10     4        Project 4 Note 1

我需要获取如下数据:

id  project     count
1      1        4
2      2        3
3      3        2
4      4        1

标签: databaselaravelrelationship

解决方案


您可以使用withcount来计算记录。

$projects = Project::withcount('projectNotes')->with('projectNotes')->get();

有了这个,你会得到project_notes_count


推荐阅读