需求是接口抛出的数据是判断条件内的随机数据,整6条。其实不难
一,我可以使用原生的SQL从数据库里获取6条数据
从MySQL官网可以看到,ORDER BY RAND()和LIMIT一起使用,可以用于选取随机的一部分。
SELECT * FROM table WHERE name = "" ORDER BY BAND()LIMIT 100;
那么在laravel中,也可以简单粗暴的实现相关功能。
dd(DB::select("SELECT * FROM table WHERE name = "" ORDER BY BAND()LIMIT 100;"));
二,我可以使用表达式直接获取
之前在learnku跟着教程走的时候,有接触过DB::raw('RAND()')从数据库中随机获取数据,orderByRaw('RAND()')效果一样,这里就懒得啰嗦了。
$info = self:: where('id','<>','')
->orderBy(DB::rew('RAND()'))
->take(6)
->get();
三,其实我最喜欢laravel的inRandomOrder方法
$info = DB::table('users')
->inRandomOrder()
->take(6)
->get();
大概是因为好记。
大功告成!!!