Получите 3 числа данных в случайном порядке и покажите их на блейде, и получите еще 3 данных без дублирования данных, которые уже показывают - PullRequest
0 голосов
/ 03 мая 2019

У меня проблема с тем, что у меня есть 9 данных в базе данных, и я хочу получить случайным образом 3 данных, которые будут вставлены в 3 группы (A, B, C), и я не хочу, чтобы какие-либо данные дублировались, поскольку они выбираются случайным образом из базы данных.

Это код в моем контроллере, который я уже пробовал для A, но я не знаю, как получить следующие 3 случайные данные для B и C без дублирования данных.

$A = TemporarySubject::inRandomOrder()->where('subject_type','compulsory')->take(3)->get();
$B = // i dont know how to do this
$C = // i dont know how to do this

1 Ответ

0 голосов
/ 03 мая 2019
$A = TemporarySubject::inRandomOrder()
                  ->where('subject_type','compulsory')
                  ->take(3)
                  ->get();

$B = TemporarySubject::inRandomOrder()
                  ->where('subject_type','compulsory')
                  ->whereNotIn('id', $A->pluck('id')) // <---
                  ->take(3)
                  ->get();

$A = TemporarySubject::inRandomOrder()
                  ->where('subject_type','compulsory')
                  ->whereNotIn('id', $A->pluck('id')) // <---
                  ->whereNotIn('id', $B->pluck('id')) // <---
                  ->take(3)
                  ->get();
...