如何从数据库中获取随机行并向 laravel 中的所有用户显示同一行?

有没有办法从表中获取随机行并向所有用户显示同一行?我知道我可以使用 random() 方法来获取行,但如何向所有用户显示同一行。


这是我的控制器:-


<?php


namespace App\Http\Controllers;


use Illuminate\Http\Request;

use Illuminate\Database\Query\Builder::inRandomOrder;

use App\Nothingness;


class NothingnessController extends Controller

{

    public function randomQuestion()

    {

        $seed = Carbon::now()->toISOString();

            Nothingness::inRandomOrder($seed)->first();

            return view('home', compact('seed'));

    }

}

这是一个新的 Laravel 项目


万千封印
浏览 88回答 1
1回答

慕容森

使用Illuminate\Database\Query\Builder::inRandomOrder方法并为其提供种子。该方法是通过 __call 魔术方法在 Eloquent 模型中实现的。种子可确保同一种子的结果排序相同。以下是一个查询,其中每个在同一分钟查看的人都会看到相同的记录。<?phpnamespace App\Http\Controllers;use Illuminate\Http\Request;use Illuminate\Support\Carbon;use App\Nothingness;class NothingnessController extends Controller{    public function randomQuestion()    {        $seed = Carbon::now()->format('Y-m-d H:i');        $randomNothing = Nothingness::inRandomOrder($seed)->first();        return view('home', compact('randomNothing'));    }}您也可以从外部来源获得种子。
打开App,查看更多内容
随时随地看视频慕课网APP