Burhan T. 1 dakikalık okuma
November 28, 2017

Laravel'de veritabanından rastgele kayıt çekme

Ola ki ihtiyacınız oldu ve veritabanından rastgele kullanıcı çekmek istiyorsunuz. Ya da makale. Bunun için Laravel'de inRandomOrder() metodu var. Hem Eloquent içerisinde hem de Query Builder'da bunu kullanabilirsiniz. (Not Laravel 5.2 ve üstü için geçerlidir)

Şöyle ki:

$randomUser = DB::table('users')
                ->inRandomOrder()
                ->first();

İsterseniz where ile şart sağlayarak da kullanabilirsiniz. Mesela aktif kullanıcı hariç rastgele kullanıcı getir demek için:

$randomUser = DB::table('users')
                ->where('id','<>',Auth::user()->id)
                ->inRandomOrder()
                ->first();             

Bir tane de Eloquent için:

User::where('id','<>',Auth::user()->id)
                ->inRandomOrder()
                ->first();

Sadece 5 tane getirmesi için:

User::where('id','<>',Auth::user()->id)
                ->inRandomOrder()
                ->take(5)
                ->get();

Etiketler: