DEV Community

Mahmoud Abdelfadiel
Mahmoud Abdelfadiel

Posted on

Chunk mechanism in laravel

صديقى العزيز مطور لارافيل اهلا بيك مره اخرى فى مقالاتى المتواضعة جدا انهارده هنتعرف عن كيفية عمل ال
Chunk
وازاى هى بتشتغل قبل ما نبدأ سريعا كده هى اصلا الفانكشن دى بتعمل ايه هى ببساطه لو عندك استعلام هيرجع بداتا كتيره من الداتابيز فا هى بتقسم الاستعلام ده لاستعلامات صغيره على حسب عدد معين انت بتبعته كا براميتر أول فى الفانكشن

وده مثال عليها

DB::table('users')->orderBy('id')->chunk(5, function ($users) {
      foreach($users as $user){
         echo $user->name . "<br>";
      }
});

Enter fullscreen mode Exit fullscreen mode

خلينا الاول نشرح الكود ده واحده واحده هنا لو انا عندى 100 مستخدم فى الداتا بيز فا هيعمل 20 استعلام لانها واخده رقم 5 كا براميتر أول فا 100\5 = 20 طبعا هنا المثال على مستخدمين قليلين لكن لو عندك الافات فا اكيد مش هتعمل جلب ل 5 فى كل مره المهم هنا اللى بيحصل ايه بقا ان اول مره بيروح ينفذ الاستعلام ده

select * from `users` order by `id` asc limit 5 offset 0  
Enter fullscreen mode Exit fullscreen mode

هنا بقا اللى حصل اخد الرقم 5 اللى انا بعته مع الفانكشن كا اول براميتر وكتبها عند ال
limit
وبدأ ال
offset 0
هيرجع بقا يكتب تانى استعلام ويبدأ من ال
offset 5

بالشكل ده

select * from `users` order by `id` asc limit 5 offset 5 
Enter fullscreen mode Exit fullscreen mode

فى الاستعلام الثالث نفس الكلام لكن هيبدأ من ال
offset 10

select * from `users` order by `id` asc limit 5 offset 10
Enter fullscreen mode Exit fullscreen mode

وهكذا للنهايه وطبعا هنا لازما اكتب ال
orderby id
علشان يرتبهم ويعرف ال
offset
ماشى ازاى

وبس كده عزيزى مبرمج اللارفيل
متنساش اللايك والفولو الجميل وشير بقا والحاجات الحلوه دى
سلام عليكم

Top comments (0)