Laravel Eloquent: 获取任务完成百分比
Laravel Eloquent: Get percentage completed from tasks
我有一个任务 table,其中包括项目 ID 和已完成的进度 (0-100)
id
project_id
progress
1
1
20
2
3
45
3
1
35
4
3
100
我要找的结果是:
项目 1 = 27.5%
项目 3 = 72.5%
我获取任务的代码如下
$project->tasks()
试试这个查询
DB::table('table_name')->selectRaw('id, project_id, sum(progress) /
count(progress) as percentage')->groupBy('project_id')
->get();
您可以执行如下操作。惯例说这种关系将被称为 tasks
:
public function tasks()
{
return $this->hasMany(Task::class);
}
public function progress()
{
return $this->tasks()->average('progress');
}
然后可以得到每个项目的任务进度:
Project::find(1)->progress();
// or
$project = Project::find(1);
$project->progress();
我有一个任务 table,其中包括项目 ID 和已完成的进度 (0-100)
id | project_id | progress |
---|---|---|
1 | 1 | 20 |
2 | 3 | 45 |
3 | 1 | 35 |
4 | 3 | 100 |
我要找的结果是:
项目 1 = 27.5%
项目 3 = 72.5%
我获取任务的代码如下
$project->tasks()
试试这个查询
DB::table('table_name')->selectRaw('id, project_id, sum(progress) /
count(progress) as percentage')->groupBy('project_id')
->get();
您可以执行如下操作。惯例说这种关系将被称为 tasks
:
public function tasks()
{
return $this->hasMany(Task::class);
}
public function progress()
{
return $this->tasks()->average('progress');
}
然后可以得到每个项目的任务进度:
Project::find(1)->progress();
// or
$project = Project::find(1);
$project->progress();