我有三个表:

1)任务;

2)拜访;

3)task_visit;

每次访问可以有0个或几个任务。我需要按访问次数对任务进行排序。例如,第一个任务有4次访问,第二个-10次,等等。

在类似的情况下,我有两个表:

1)医生;

2)造访

我按访问对医生进行分类。

在StatVisit控制器中:

$tests = \App\Doctor::withCount(['visitsbydoctor' => function ($query) use ($a,$b){
  $query->whereBetween('date', array($a,$b));
}])->orderBy('visitsbydoctor_count', 'desc')->paginate(1000000);


在医生模型中:

public function visitsbydoctor()
{
    return $this->hasMany(Visit::class);
}


在数据透视表的情况下如何重写此代码?用于医生模型和StatVisit控制器。

最佳答案

使用绝对相同的方法。 withCount()也适用于许多关系:

Task::withCount('visits')->latest('visits_count')->get()

09-20 06:30