我在鏈接共享網站上工作,需要通過他們的投票排序鏈接。Laravel 5 orderBy關係計數和分頁
我有一個'links'表和一個link_votes表。
link_votes表具有鏈接表'id'字段的'link_id'引用字段。
我有我的鏈接模型的hasMany關係:
public function votes()
{
return $this->hasMany('\App\LinkVote');
}
這將返回所有行(每行是一票)的詮釋,他link_votes表。
我的標準查詢來獲取所有我的鏈接,併爲了他們所創造的日期是:
$links = Link::withCount('votes')->orderBy('votes_count', 'desc')->paginate(10);
我想現在要做的是爲了通過他們有票額我聯繫。
什麼我現在是:
$links = Link::orderBy('created_at', 'desc')->with('votes')->paginate(20);
這工作,但幾乎不怎麼樣。我有一個vote_type字段,在我的link_votes表中有兩種類型的投票。如果投票結果爲1,但是投票結果爲1,則投票結果爲0。
問題出在這裏,按票數排序,它將所有選票作爲一個計數,並將投票結果爲否定票那些沒有任何投票的鏈接。
我需要找到upvotes(vote_type = 1)減去downvotes(vote_type = 2)的總和的排序方式。
在我看來,我通過做數學來顯示投票數。