[英]Use order by in pivot table data in Laravel's Eloquent ORM
我有三個表:
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);
}
在數據透視表的情況下如何重寫此代碼? 對於Task模型和StatVisit控制器,與醫生情況相同。
使用絕對相同的方法。 withCount()
適用於許多關系:
Task::withCount('visits')->latest('visits_count')->get()
我找到了下一個工作解決方案:
$tests1 = \App\Task::withCount(['taskvisit' => function ($query) use ($a,$b){
$query->whereBetween('date', array($a,$b));
}])->orderBy('taskvisit_count', 'desc')->paginate(1000000);
public function taskvisit()
{
return $this->belongsToMany(Visit::class)->withPivot('task_visit', 'visit_id');
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.