在我的网站上,我允许用户上传图像/喜欢的图像/最喜欢的图像/等。
因此,我有一个表的图像,喜欢,收藏夹等。
我可以很好地获取和显示这些图像,并按我喜欢的方式对它们进行排序
$images = Images::orderBy('id', 'desc')->Paginate(50);
我还可以显示一张图片有多少喜欢/收藏。
$favCount = Favorite::where('image_id', $image->id)->count();
然而,我该怎么做来排序图像,比如说,他们有多少收藏夹?我有一个最喜欢的模型和一个形象模型,但我不知道我会怎么做。
编辑:
当前对给定答案的查询:
$images = Images::join('favorites', 'favorites.image_id', '=', 'images.id')
->select('images.link', DB::raw('count(favorites.id) as favs'))
->orderBy('favs', 'desc')
->groupBy('images.link')
->take(10)
->get();
错误是:
SQLSTATE[42S22]:未找到列:1054 Unknown column 'images' in 'field list'(SQL:select images
,count(favorites.id)as favs from images
inner join favorites
on favorites
. image_id
= images
。id
由images
分组。link
order by favs
desc limit 10)
3条答案
按热度按时间at0kjp5o1#
你可以这样使用query builder:
同样的事情也可以用Eloquent来完成。
0dxa2lsx2#
您的查询应该是。
btqmn9zl3#
可以根据请求进行排序。