Случайная сортировка QueryBuilder
Для сортировки результатов запроса в случайном порядке можно использовать метод inRandomOrder()
. Давайте для примера получим все посты и отсортируем их в случайном порядке:
app/Http/Controllers/PostController.php<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB; // подключаем фасад DB
class PostController extends Controller
{
public function show()
{
$posts = DB::table('posts')
->inRandomOrder()
->get();
dump($posts);
}
}
Первый вызов всегда идёт через table()
в котором указываем таблицу базы данных. Метод get()
указывает на окончание запроса и выполняет его в базу данных, возвращает объект Illuminate\Support\Collection
c результатами в котором каждый результат, это экземпляр класса stdClass
.
А теперь давайте получим один случайный пост:
app/Http/Controllers/PostController.php<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB; // подключаем фасад DB
class PostController extends Controller
{
public function show()
{
$post = DB::table('posts')
->inRandomOrder()
->first();
dump($post);
}
}