用户可以多次应用单个订单。最后一个是我想要的。我的代码:
$users = User::whereHas('applies', function ($query) use ($order_id){
$query->where('order_id', $order_id);
})->with(['applies' => function($query) use ($order_id){
$query->orderBy('id', 'desc')->where('order_id', $order_id)->first();
}])->paginate($request->perPage);
此限制仅在最后一个用户中申请的数量,其他申请记录为空。从with()中删除first()将显示所有用户均适用。那个怎么样?请帮忙。
我尝试了limit(1),take(1)-> get(),take(1),但也失败了。
答案 0 :(得分:1)
没有简单的方法来限制渴望的加载。
您可以使用HasOne
关系:
public function latestApply() {
return $this->hasOne(Apply::class)->orderBy('id', 'desc');
}
$users = User::whereHas('applies', function ($query) use ($order_id){
$query->where('order_id', $order_id);
})->with(['latestApply' => function($query) use ($order_id){
$query->where('order_id', $order_id);
}])->paginate($request->perPage);
这仍然会提取所有后台应用的内容,但只会为每个用户显示最新的内容。