我如何从mysql的产品表中显示随机产品

问题描述 投票:0回答:2
php laravel laravel-blade
2个回答
2
投票

您可以使用

inRandomOrder()
以随机顺序获得
Products

$products = Product::inRandomOrder()->take(10)->get();

以上将为您提供 10 个随机

products
,您可以从那里将它们传递到您的视图或任何您需要使用随机产品的地方。例如:

public function index()
{
    $products = Product::inRandomOrder()->take(10)->get();
    return view('products.index', compact('products'));
}

然后在您的

products.view
刀片文件中,您可以像往常一样循环浏览产品:

@foreach ($products as $product)
    <p>{{ $product->name }}</p>
@endforeach

根据您的评论如下:

$latests = Product::where('status','1')->orderBy('id','desc')->take(8)->get();

如果您真正想要的是

10
最新记录,但按随机顺序,请使用 Laravel 集合上提供的
shuffle
方法:

$latests = Product::where('status', '1')
    ->orderBy('id', 'desc')
    ->take(10)
    ->get()
    ->shuffle();

0
投票

在您的控制器中使用 RAND

$products = Product::orderByRaw('RAND()')->take(10)->get();

 return view('your.view page', compact('products'));

在视图页面中循环通过@foreach

@foreach ($products as $product)
    <p> {!! $product->image!!} </p>
    <p> {!! $product->name !!} </p>
//more code here
@endforeach
© www.soinside.com 2019 - 2024. All rights reserved.