簡體   English   中英

在Laravel Eloquent ORM中的數據透視表數據中使用order by

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM