代码之家  ›  专栏  ›  技术社区  ›  Jim Peeters

如何在雄辩的laravel 5.1中通过相关项目的计数排序?

  •  1
  • Jim Peeters  · 技术社区  · 9 年前

    我有很多竞拍者。现在,我想根据每次拍卖的竞拍者数量来订购拍卖。我该怎么做?

    型号:Auction.php

    public function bidders()
    {
        return $this->hasMany('App\Bidder', 'FK_auction_id');
    }
    

    我这样试过,但这显然是错误的,但它给出了一个想法 我想完成的事情。控制器:

    $auctions = Auction::orderBy($auction->bidders->count() , 'desc')->paginate(9);
    
    2 回复  |  直到 9 年前
        1
  •  4
  •   xAoc    9 年前

    试试这样的东西。。。

    Auction::select('auctions.*, COUNT(bids.id) as bids_count')
    ->leftjoin('bids', 'bids.FK_auction_id', '=', 'auctions.id')
    ->groupBy('bids.id')->orderBy('bids_count', 'desc')->paginate(9);
    
        2
  •  0
  •   Jim Peeters    9 年前

    我也找到了这个答案:

    $auctions = Auction::leftJoin('bidders','auctions.id','=','bidders.FK_auction_id')->
                   selectRaw('auctions.*, count(bidders.FK_auction_id) AS `count`')->
                   groupBy('auctions.id')->
                   orderBy('count','DESC')->
                   paginate(9);