我正在使用 Laravel 5.3 并尝试使用它的产品和仅最新订单以及最新价格历史返回抢劫.两个连接都不返回任何内容,但是如果我删除 $q->latest()->first();
并将其替换为简单的 orderBy()
我得到所有结果。我的查询是:
$data = $heist->with(['product'=> function($query) {
$query->with(['orders' => function($q) {
return $q->latest()->first();
}]);
$query->with(['price_history' => function($q) {
return $q->latest()->first();
}]);
}])->orderBy('completed_at', 'DESC')->orderBy('active', 'DESC')->get();
最佳答案
正如评论中所讨论的,我认为最简单的方法是
$heists = $heist->with(['product'=> function($query) {
$query->with([
'orders' => function($q) {
return $q->orderBy('created_at', 'desc')->take(1)->get();
},
'price_history' => function($q) {
return $q->orderBy('created_at', 'desc')->take(1)->get();
}
]);
}])->orderBy('completed_at', 'desc')->orderBy('active', 'desc')->get();
希望这有帮助:)
关于php - laravel 查询仅加入最新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40623337/