首页 > 解决方案 > 按特色 DESC 和 Rand() 排序 - Laravel

问题描述

用例:随机显示前 3 个特色图像,然后是带有分页的非特色图像。我有大约 17 张特色图片。

我如何随机使用 orderBy。

DB:featured: 数据库中的 0 或 1

$images = Images::OrderBy('featured', 'desc')->paginate(10);

标签: laravel

解决方案


尝试

没有分页

//Latest 3 featured images
$top3FeaturedImages = Images::where('featured', 1)
    ->latest()
    ->take(3)
    ->get();

$randomUnfeaturedImages = Images::where('featured', 0)
    ->inRandomOrder()
    ->take(7)
    ->get();

$result = $top3FeaturedImages->concat($randomUnfeaturedImages);

带分页


$featuredImages = Images::where('featured', 1)
    ->latest()
    ->take(3)
    ->get();

$randomUnfeaturedImages = Images::where('featured', 0)
    ->inRandomOrder()
    ->paginate(7);

//In this case you need to pass 2 variables to the view $featuredImages & paginated $randomUnfeaturedImages

推荐阅读