سلام. من به یک مسئله جالب در query builder برخوردم. وقتی در کوئری هم زمان از inRandomOrder و paginate استفاده می کنم و تعداد صفحات بیشتر از یکی میشه ، نتیجه تکراری میاره. دوستان کسی قبلا راه حلشو پیدا کرده ؟
تشکر
یک seed باید به تابع بدهیم و آن را برای صفحات بعدی در سشن ذخیره کنیم
https://blog.antoine-augusti.fr/2014/05/paginate-posts-correctly-when-they-are-random-ordered/
@elyasbeshkani
اینو دیده بودم . شاید درست متوجهش نشده باشم. اما من برداشتم این بود که بجای foobar باید نام یک از ستونهای جدول رو بزارم. که با این کار نتایج از حالت رندوم خارج میشه
فکر کنم طبق چیزی که اینجا توی مستندات گفته باید یه seed بهش بدین که خودمم دقیق نمیدونم چیه
https://laravel.com/api/6.x/Illuminate/Database/Query/Builder.html#method_inRandomOrder
یا اینکه اینم شاید جواب بده (اضافه کردن distinct)
->inRandomOrder()->distinct()->paginate(10);
من حتی inrandomorder رو با '((()orderBy(DB::raw('RAND
جایگزین کردم ولی همچنان مشکل باقیست
@juza66
@elyasbeshkani
من تست و خطا به کد زیر رسیدم که فکر کنم مشکلو حل کرده. البته چراشو نفهمیدم. اگر عزیزی می دونه ممنون میشم توضیح بده.
->inRandomOrder(rand(1,10000))
یک seed باید به تابع بدهیم و آن را برای صفحات بعدی در سشن ذخیره کنیم
https://blog.antoine-augusti.fr/2014/05/paginate-posts-correctly-when-they-are-random-ordered/
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟