如何在Laravel-5中获取随机行

16 浏览
0 Comments

如何在Laravel-5中获取随机行

在 L-4 中很简单:

$random_quote = Quotation::all()->random(1);

但现在在 L-5 中,本帖子中描述的任何方法都无法工作:Laravel - Eloquent or Fluent random row

我的视图文件只会变为空白。

admin 更改状态以发布 2023年5月23日
0
0 Comments

random()在5.2中会出现错误,所以您可以使用inRandomOrder,它可以在Eloquent上正常工作。

例如:

Model::inRandomOrder()->first()

0
0 Comments

这些都能够工作,但是你可能没有使用正确的命名空间,只需在你的名称顶部使用use语句即可,像这样:


然后在你的方法中,你可以像这样使用它:

// You may add: use DB; at the top to use DB instead of \DB
$random_quote = Quotation::orderBy(\DB::raw('RAND()'))->first();

或者像这样使用:

$random_quote = Quotation::orderByRaw("RAND()")->first();

更新(自Laravel - 5.2起):

$random_quote = Quotation::inRandomOrder()->first();

0