Laravel有几种方法来询问它所链接的数据库。在本教程中, 我们将探讨从任何指定的表中提取最新记录(按日期时间)的2种方法。无论你喜欢使用Eloquent还是原始SQL,本文都将回答这两种使用情况。
方法一
方法一使用Eloquent并利用两个重要的操作符来拉出最新记录,sortByDesc 和take 。sortByDesc 方法将把一个日期时间戳作为它的指定列,在这个例子中,是creative_at列。在这之后,我们使用take() 操作符指示了一个1的限制,这意味着它将从集合中拉出第一条记录。
脚本
$lastRecordDate = Product::all()->sortByDesc('created_at')->take(1)->toArray();
dd($lastRecordDate);
// OR
$lastRecordDate = Product::all()->sortByDesc('YOUR_COLUMN_NAME')->take(1)->toArray();
dd($lastRecordDate);
输出

方法二
下一个方法是利用一个原始的SQL查询,其方式与方法一基本相同。我们将再次使用排序和限制来获取最新的记录。在这个语法中,sortByDesc 是 "order by",take 是 "limit"。
$lastRecordData = DB::select('select * from products order by created_at desc limit 1');
dd($lastRecordData);
// OR
$lastRecordData = DB::select('select * from YOUR_TABLE_NAME order by YOUR_DATE_COLUMN desc limit 1');
dd($lastRecordData);
这将给我们提供一个类似的表内最新记录的输出,但是是以对象形式出现的
输出

如果我们想将其转换为数组,只需一行代码就可以完成,我在一篇关于将对象转换为数组的文章中已经演示过。
就这样,有两种方法可以从任何带有DateTime列的数据表中获取最新记录。希望这对你有帮助!