php - laravel 查询仅加入最新记录

标签 php laravel

我正在使用 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/

相关文章:

javascript - 调整大小时,使用 laravel 中的 asset 函数加载图像

mysql - 如何在 Laravel 中绑定(bind)参数 sql 查询参数而不使用原始选择?

php - mysql LIKE 搜索不适用于带空格的文本

php - laravel 中的关系和 Blade

php - Laravel ajax catch 500 内部服务器错误

php - 插入 ISO8601 DATETIME 会引发错误

laravel保存pdf没有这样的文件或目录

php - 如何设置pdf的标题名称。查看文档时(新标签)

php - 使用 popen 执行多处理脚本时输出困惑

php - 如何检查父类的instanceof?