簡體   English   中英

Laravel OrderBy關系計數,但是關系中的屬性是特定的

[英]Laravel OrderBy relationship count, but where an attribut in the relationship is something specific

我有一個叫笑話的桌子和一個叫票的桌子。 笑話有很多票。 在我的投票表上,我有一個稱為投票的屬性。 投票可以是1或0。1表示贊成,0表示反對。 在我的系統中,我想讓用戶過濾以投票最多的笑話。 我的問題是我如何才能以最多的票數來訂購我的笑話。

對於一個笑話,我的得票數是這樣的:

 $vote_up_count = $joke->votes()->where('vote', '=', 1)->count();

但我不知道如何計算OrderBy關系(其中表決票數= 1)。

這可能是很長的路要走,但是應該可以:

步驟1:獲取笑話$jokes的集合。

步驟2:遍歷笑話集合,以獲得收入關系模型$jokes->each(function ($joke){});

步驟3:對於每個投票關系,通過僅過濾那些vote == 1的票來獲得等於1的票數。 $joke->votes->filter(function ($vote) {return ($vote->vote == 1);})->count()

步驟4:將計數屬性添加到笑話模型$joke->count = $count

步驟5:在新的count屬性sortByDesc('count')上按降序排列整個笑話集合。

最終結果如下所示:

$sortedByVoteCount = ($jokes->each(function ($joke) {
        $count = ($joke->votes->filter(function ($vote) {
            return ($vote->vote == 1);
        })->count());

        $joke->count = $count;

    })->sortByDesc('count'));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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