如何从Laravel5.6中的数据表中只获取最新的更新记录?

icomxhvb  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(321)

像这样的项目我有下面的表名,

id    name    adtype created_at    updated_at
1     gobba     1      2018-02-25    2018-02-25
2     manna     0      2018-04-25    2018-04-25
3     alaya     1      2017-12-28    2017-12-28

我只需要抓取一个与最新更新记录相关的结果,adtype==1,我为下面的控制器编码,为此,

public function showad()
     {
 $projects = Vehicle::with('uploads')
            ->where('adtype','=',1)
            ->latest('updated_at');
return view('vehicles.slider')->withProjects($projects);

但这项工作,但不过滤最新更新的记录。如何纠正?

4xrmg8kj

4xrmg8kj1#

尝试使用 ORDER BY 以及 LIMIT :

$projects = Vehicle::with('uploads')
    ->where('adtype', '=', 1)
    ->orderBy('updated_at', 'desc')
    ->take(1)
    ->get();

这应该对应于以下原始mysql查询:

SELECT *
FROM uploads
WHERE adtype = 1
ORDER BY updated_at DESC
LIMIT 1;

相关问题