رتبه موضوع:
  • 1 رای - 5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
آموزش صفحه بندی در لاراول 5
#1
صفحه بندی کردن (Pagination)


هنگامی که تعداد رکوردهایی که می خواهید در یک صفحه وب نمایش دهید زیاد می باشد بهترین روش برای مدیریت تعداد نمایش در هر صفحه صفحه بندی کردن است. در لاراول شما آسان تر از سایر فریمورک ها می توانید این کار را انجام دهید. کد HTML ای هم که برای نمایش صفحه بندی تولید می شود سازگار با Bootstrap Twitter می باشد.

هنگام بازیابی رکوردها از دیتابیس کافی است از متد paginate استفاده کنیم و تعداد آیتم های قابل نمایش در هر صفحه را هم به عنوان پارامتر به آن بدهیم :

کد پی‌اچ‌پی:
$users DB::table('users')->paginate(15);
$allUsers User::paginate(15);
 
$someUsers User::where('votes''>'100)->paginate(15); 


در مثال های فوق هم با روش کوئری بیلدر و هم Eloquent اینکار را انجام داده ایم و تعداد آیتم ها را ۱۵ تعیین کردیم.


حالا فرض کنید تمام کاربران را از دیتابیس واکشی کردیم و به صفحه view با متغیری به نام users ارسال کردیم. داخل ویو موردنظر کدهای زیر را قرار می دهیم :


کد پی‌اچ‌پی:
<div class="container">
 
   <?php foreach ($users as $user): ?>
        <?php echo $user->name?>
    <?php endforeach; ?>
</div>
 
<?php echo $users->render(); ?>


با استفاده از حلقه foreach نام کاربران را نمایش میدهیم. برای نمایش کد HTML مربوط به صفحه بندی هم از متد render استفاده میکنیم و آن را چاپ میکنیم. البته مثال بالا به روش php نوشته شده و شما بهتر است از موتور قالب Balde استفاده کنید. با CSS میتوانید قالب نمایش صفحه بندی را به دلخواه خودتان تغییر دهید.



غیر از متد render متدهای دیگر هم وجود دارند که می توانید اطلاعات بیشتری را بدست آورید به طور مثال currentPage شماره صفحه جاری را نمایش می دهد و lastPage شماره آخرین صفحه و ... 


اگر فقط می خواهید لینک Next و Previous نمایش داده شود و صفحه بندی ساده ای باشد از متد simplePaginate هنگام واکشی استفاده کنید. 


کد پی‌اچ‌پی:
$someUsers User::where('votes''>'100)->simplePaginate(15); 


به طور پیش فرض URL هنگام صفحه بندی مثلا به صورت 2=page? خواهد بود شما می توانید با متد setPath یک URL دلخواه هنگام نمایش صفحه بندی ایجاد کنید :


کد پی‌اچ‌پی:
$users User::paginate();
 
$users->setPath('custom/url'); 


در مثال بالا آدرس URL به صورت http://example.com/custom/url?page=2 نمایش داده می شود.


به انتهای URL می توانیم کوئری استرینگ هم اضافه کنیم. هنگام نمایش صفحه بندی با استفاده از متد append که داده های کوئری استرینگ را به عنوان آرایه به آن می دهیم :


کد پی‌اچ‌پی:
<?php echo $users->appends(['sort' => 'votes'])->render(); ?>


در مثال بالا آدرس URL به صورت http://example.com/something?page=2&sort=votes نمایش داده میشود.

همچنین می توانیم با متد fragment یک آدرس fragment را به انتهای URL اضافه کنیم.


کد پی‌اچ‌پی:
<?php echo $users->fragment('foo')->render(); ?>


در مثال بالا URL به صورت http://example.com/something?page=2#foo نمایش داده می شود.

(با تشکر از حامد آریان)
قوانین انجمن لاراولیستا  | شماره تماس :‌09124783045 |‌ تلگرام :‌ 09377869283
پاسخ
 


موضوعات مشابه ...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  تغییر نکردن محتوای صفحه پس از ارسال id mahsandr 0 46 11-24-2016, 03:31 PM
آخرین ارسال: mahsandr
  آموزش اعتبار سنجی در لاراول 5 alihossein 4 773 11-20-2016, 07:12 AM
آخرین ارسال: حمید رﺽا کمالی
  آموزش روتینگ routing در لاراول 5 alihossein 2 1,126 11-12-2016, 04:37 AM
آخرین ارسال: حمید رﺽا کمالی
  آموزش کار با دیتابیس در لاراول 5 alihossein 6 1,553 10-27-2016, 01:01 PM
آخرین ارسال: sempaisaleh
  آموزش Migration در لاراول 5 alihossein 9 1,158 08-15-2016, 04:17 PM
آخرین ارسال: Naser.SherafatiNia
  نصب و پیکر بندی لاراول zahramhd 2 117 07-23-2016, 01:21 PM
آخرین ارسال: amirhb
  آموزش فارسی لاراول ۵ alihossein 4 2,859 07-22-2016, 04:16 PM
آخرین ارسال: elham_malekmohamadi
  صفحه سفید موقع جابجایی هاست لاراول absa2004 2 98 07-20-2016, 05:52 PM
آخرین ارسال: absa2004
  # سوال : آموزش ساخت ربات تلگرام با پکیج irazasyed/telegram-bot-sdk Bvk.Programmer 0 234 04-25-2016, 04:54 PM
آخرین ارسال: Bvk.Programmer
  درخواست آموزش کار با پکیج intervention/image Bvk.Programmer 6 492 04-18-2016, 05:52 PM
آخرین ارسال: hamo

پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان

درباره انجمن فریم ورک لاراول

انجمن لاراولیستا به عشق توسعه دهنده ها و علاقمندان به این فریم ورک محبوب ایجاد شده و امیدواریم با نظرات خوبتون ما رو در بهبود کار یاری کنید. در ضمن خیلی هم خوشحال میشیم شما هم در توسعه این انجمن سهمی داشته باشید.