具有hasMany关系

时间:2018-11-20 11:40:08

标签: laravel laravel-5.6

我有2个模型POST和Member,我希望按会员的姓氏进行订购

但返回默认排序

$post= POST::where('type','<>',0)
       ->with(['member'=>function($query){
        $query->orderBy('lastname','desc');
       }])->paginate(10);

谢谢。

3 个答案:

答案 0 :(得分:0)

尝试

$post= POST::where('type','<>',0)
   ->with(['member'=>function($query){
    $query->latest('lastname')->first();
   }])->paginate(10);

答案 1 :(得分:0)

您应该使用join()leftJoin()

$posts = POST::select('posts.*')
    ->join('members', 'members.id', '=', 'posts.member_id')
    ->where('posts.type','<>',0)
    ->orderByDesc('members.lastname')
    ->paginate(10);

答案 2 :(得分:-1)

您正在与成员一起收集前10个帖子

如果您希望数据作为成员的姓氏排序,那么雄辩的人应该是这样

 $members = Member::whereHas('Post' , function($q){
                $q->where('type','<>',0);
            })->orderBy('lastname','desc')
              ->paginate(10);

注意:我没有在我的电脑上运行此程序,如果我写错了什么,请通知我。谢谢