基于关系计数的订单收集Laravel

nuypyhwy  于 2022-12-01  发布在  其他
关注(0)|答案(1)|浏览(102)

亲爱的所有我想知道我如何才能通过一个关系订购这个数据集合
我有一个名为Customer的模型,其中客户可以拥有多个预订
我的收藏是这样的

Customer::where('tid' , $tid)
 ->with(['reservations'])
 ->paginate(20)

而预订在Customer模型中是关系,它是hasMany
我的问题如果我有一个过滤器有两个选项
1.按最大保留量排序
1.按最小保留量排序

我如何根据这些预订,通过客户的互动来订购这些客户

我可以像这样将筛选器附加到查询

->when($request->get('reservation_filter') != null  , function($q) use($request){
   if($request->get('reservation_filter') == 'order by maximum reservations'){
       // my query here 
   }else{
      // my query here 
   } 
   
})
c90pui9n

c90pui9n1#

仅更改基于筛选器的结果顺序:

$sortingOrder = ('order by maximum reservations' == $request->get('reservation_filter'))
    ? 'desc'
    : 'asc';

Customer::where('tid', $tid)
    ->withCount('reservations')
    ->orderBy('reservations_count', $sortingOrder)
    ->paginate(20);

相关问题