微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

我如何在我的 Laravel estore 上随机展示产品。

i have this mysql database with table products

我希望代码选择 10 个随机产品并最好使用 foreach 显示

Thus the image of where i want products displayed randomly

var original = Chart.defaults.global.legend.onClick;
Chart.defaults.global.legend.onClick = function(e,legendItem) {
  /* do custom stuff here */
  original.call(this,e,legendItem);
};

这就是我的开发人员的显示方式,但效率不高。那么当我接手这个项目时,我该如何展示产品呢?我尝试了很多方法,但都没有奏效。我还是 laravel 的新手

解决方法

您可以使用 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();
,

在您的控制器中使用 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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。