随机获取3个数据并将其显示在刀片​​上,然后再获取3个数据,而无需复制已经显示的数据

时间:2019-05-03 15:55:04

标签: laravel eloquent laravel-5.5 laravel-5.6

我有一个问题,我的数据库中有9个数据,我想随机地将3个数据插入3组(A,B,C)中,并且我不想重复任何数据,因为它是随机抽取的从数据库中获取。

这是我已经为A尝试过的Controller中的代码,但是我不知道如何获取B和C的下3个随机数据,而无需重复任何数据。

$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 :(得分:0)

$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();