首页 > 解决方案 > 如何选择具有最新日期的所有值 Laravel 5.8

问题描述

我正在尝试获取具有最新日期的所有行

在此处输入图像描述

我只想获得第 3 行和第 4 行

当我使用这个eloquent查询时:

    $items = Purchase::whereYear('created_at', '=', $year)
          ->whereMonth('created_at', '=', $month)
          ->where('created_at', Purchase::max('created_at'))
          ->get();
    return $items;

然而,这就是我得到的:

[{"id":4,"itemid":1,"price":"1.60","quantity":4,"created_at":"2019-09-14 08:39:31","updated_at":" 2019-09-14 08:39:31"}]

标签: datelaravel-5selecteloquent

解决方案


您必须使用->whereDate()功能

$lastDate = Purchase::max('created_at')->format('Y-m-d');
$items = Purchase::whereDate('created_at', $lastDate)->get();

编辑:

$lastDate = Carbon::parse(Purchase::max('created_at'))->format('Y-m-d');
$items = Purchase::whereDate('created_at', $lastDate)->get();

推荐阅读