hamed
4 سال پیش توسط hamed مطرح شد
10 پاسخ

inRandomOrder with paginate

سلام. من به یک مسئله جالب در query builder برخوردم. وقتی در کوئری هم زمان از inRandomOrder و paginate استفاده می کنم و تعداد صفحات بیشتر از یکی میشه ، نتیجه تکراری میاره. دوستان کسی قبلا راه حلشو پیدا کرده ؟
تشکر


ثبت پرسش جدید
hamed
@shojai80 4 سال پیش مطرح شد
0

یک seed باید به تابع بدهیم و آن را برای صفحات بعدی در سشن ذخیره کنیم
https://blog.antoine-augusti.fr/2014/05/paginate-posts-correctly-when-they-are-random-ordered/


الیاس سخاوتی نیا
تخصص : علاقه‌مند به برنامه‌‎نویسی
@elyassir 4 سال پیش مطرح شد
hamed
@shojai80 4 سال پیش مطرح شد
0

@elyasbeshkani
اینو دیده بودم . شاید درست متوجهش نشده باشم. اما من برداشتم این بود که بجای foobar باید نام یک از ستونهای جدول رو بزارم. که با این کار نتایج از حالت رندوم خارج میشه


الیاس سخاوتی نیا
تخصص : علاقه‌مند به برنامه‌‎نویسی
@elyassir 4 سال پیش مطرح شد
0

@shojai80

فکر کنم طبق چیزی که اینجا توی مستندات گفته باید یه seed بهش بدین که خودمم دقیق نمیدونم چیه
https://laravel.com/api/6.x/Illuminate/Database/Query/Builder.html#method_inRandomOrder

یا اینکه اینم شاید جواب بده (اضافه کردن distinct)

->inRandomOrder()->distinct()->paginate(10);

hamed
@shojai80 4 سال پیش مطرح شد
0

من حتی inrandomorder رو با '((()orderBy(DB::raw('RAND جایگزین کردم ولی همچنان مشکل باقیست


hamed
@shojai80 4 سال پیش مطرح شد
0

@elyasbeshkani
distinct رو هم امتحان کردم ولی فرقی نمی کنه


سیدعلی موسوی
تخصص : سی شارپ و پی اچ پی
@juza66 4 سال پیش آپدیت شد
0

خب این inRandomOrder رو اول کوئری اضاف میکنی بعد paginate میکنی؟


hamed
@shojai80 4 سال پیش مطرح شد
0

@juza66
نفهمیدم جملتون سوالیه یا خبری.
;(inRandomOrder()->paginate(10<-
این کدشه


hamed
@shojai80 4 سال پیش آپدیت شد
0

@juza66
@elyasbeshkani
من تست و خطا به کد زیر رسیدم که فکر کنم مشکلو حل کرده. البته چراشو نفهمیدم. اگر عزیزی می دونه ممنون میشم توضیح بده.

->inRandomOrder(rand(1,10000))

hamed
@shojai80 4 سال پیش مطرح شد
0

متاسفانه اینم جواب نداد. اشتباه کردم


hamed
@shojai80 4 سال پیش مطرح شد
0

یک seed باید به تابع بدهیم و آن را برای صفحات بعدی در سشن ذخیره کنیم
https://blog.antoine-augusti.fr/2014/05/paginate-posts-correctly-when-they-are-random-ordered/


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام