【问题标题】:Laravel 4.2 Group by and orderby ID DESCLaravel 4.2 Group by and orderby ID DESC
【发布时间】:2016-02-25 09:50:00
【问题描述】:

我想通过 messagerie 的最后一个 ID DESC 显示我的收藏,但也希望它们由 messagerie_sujet 的 msSujet 分组

目前我的查询显示第一个 ID,我想要最后一个 ID

    $currentUserId = Auth::user()->id;

    $threads = Messagerie::where('id_destinataire',$currentUserId)
        ->leftJoin('messagerie_sujets', 'messageries.sujet_id', '=', 'messagerie_sujets.id')
        ->select('messageries.id','messageries.id_expediteur','messageries.lu' ,'messagerie_sujets.id as msid','messagerie_sujets.sujet as msSujet',
            'messagerie_sujets.id as Mid','messagerie_sujets.created_at','messagerie_sujets.updated_at','messagerie_sujets.sujet','messageries.message')
        ->orderBy('messageries.id DESC')
        ->groupBy('msSujet')
        ->paginate(10);

谢谢

【问题讨论】:

    标签: mysql laravel laravel-4 eloquent laravel-4.2


    【解决方案1】:

    您的 orderBy 函数调用有点偏离签名,因为它是 orderBy($columnName,$order)

    $currentUserId = Auth::user()->id;
    
    $threads = Messagerie::where('id_destinataire',$currentUserId)
        ->leftJoin('messagerie_sujets', 'messageries.sujet_id', '=', 'messagerie_sujets.id')
        ->select('messageries.id','messageries.id_expediteur','messageries.lu' ,'messagerie_sujets.id as msid','messagerie_sujets.sujet as msSujet',
            'messagerie_sujets.id as Mid','messagerie_sujets.created_at','messagerie_sujets.updated_at','messagerie_sujets.sujet','messageries.message')
        ->groupBy('messagerie_sujets.sujet')
        ->orderBy('messageries.id','DESC')
        ->paginate(10);
    

    【讨论】:

    • 我需要在哪里添加我的 orderBy?
    • 添加到哪里没关系,可以在Eloquent请求的任意位置添加...它会自动在后台排序SQL
    【解决方案2】:

    只需将->orderBy('messageries.id DESC') 代码更改为->orderBy('messageries.id','DESC')

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-09
      • 2019-03-29
      • 1970-01-01
      • 2013-09-20
      • 2020-01-19
      • 1970-01-01
      • 2011-11-10
      • 1970-01-01
      相关资源
      最近更新 更多