繁体   English   中英

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

[英]How do I fetch a radom row from the database and display the same row to all the users in laravel?

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

这是我的 Controller:-

<?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 项目

使用Illuminate\Database\Query\Builder::inRandomOrder方法并为其提供种子。

此方法在 Eloquent 模型中通过 __call 魔术方法实现

种子确保结果对相同种子的排序相同。

以下是一个查询,每个人在一天中的同一分钟查看相同的记录。

<?php

namespace 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'));
    }
}

您也可以让种子来自外部来源。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM