[英]How do I display the highest value of the column in Laravel using Eloquent?
我正在尝试显示显示每个名称的最高版本的行。 但是,我在如何将原始 php 代码转换为 Eloquent ORM 时遇到问题。我们将不胜感激。
$sql="SELECT * FROM images WHERE (Name,Version) IN (SELECT Name, MAX(Version) FROM images GROUP by Name)";
编辑:
这是我到目前为止尝试过的代码,它显示了唯一的名称,但没有显示该名称的最高版本。
$items=Item::orderBy("version","DESC")->groupBy('model_name')->latest()->paginate(5);
Image::all()
->groupBy('model_name')
->map(function($group) { return $group->sortByDesc('version')->first(); });
图片::全部()
你知道它的作用。
->groupBy('model_name')
按model_name
分组。 将字段名称替换为您要对它们进行分组的字段。 所以有多少模型,就有多少组。
->map(function($group) { return $group->sortByDesc('version')->first(); });
在每个组中,为了获得item (不是items )最新版本,我按版本降序对它们进行排序。 这样最新版本的项目将位于顶部。 然后拿去。
如果你想要多个最新版本的项目,适应。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.