رتبه موضوع:
  • 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
پاسخ
 


موضوعات مشابه ...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  درخواست راهنمایی : تعریف سطوح دسترسی کاربری در لاراول Bvk.Programmer 11 793 02-16-2017, 10:09 PM
آخرین ارسال: ansar
  # سوال : آموزش ساخت ربات تلگرام با پکیج irazasyed/telegram-bot-sdk Bvk.Programmer 1 320 02-16-2017, 09:55 PM
آخرین ارسال: ansar
  بهترین پکیج acl برای لاراول چیست homeily@gmail.com 2 71 12-18-2016, 08:43 AM
آخرین ارسال: hamo
  تغییر نکردن محتوای صفحه پس از ارسال id mahsandr 0 93 11-24-2016, 03:31 PM
آخرین ارسال: mahsandr
  آموزش اعتبار سنجی در لاراول 5 alihossein 4 881 11-20-2016, 07:12 AM
آخرین ارسال: حمید رﺽا کمالی
  نحوه ایجاد Token-Based Authentication(oauth2) در لاراول با استفاده از passport anonymox 0 94 11-12-2016, 06:27 AM
آخرین ارسال: anonymox
  آموزش روتینگ routing در لاراول 5 alihossein 2 1,304 11-12-2016, 04:37 AM
آخرین ارسال: حمید رﺽا کمالی
  اجرای کوئری در لاراول amirbakhtiari 1 67 11-06-2016, 07:50 AM
آخرین ارسال: hamo
  آموزش کار با دیتابیس در لاراول 5 alihossein 6 1,885 10-27-2016, 01:01 PM
آخرین ارسال: sempaisaleh
  کند بودن بیش از حد اجرای لاراول feri 0 67 10-19-2016, 05:09 PM
آخرین ارسال: feri

پرش به انجمن:


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

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

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