تکنولوژی نوین اینترنتی
در لاراول، Pagination یا صفحهبندی یک ویژگی قدرتمند است که به شما این امکان را میدهد تا دادهها را به صفحات مختلف تقسیم کرده و آنها را در رابط کاربری به صورت مرتب نمایش دهید. این ویژگی بهویژه زمانی مفید است که دادههای زیادی دارید و نمیخواهید همهی دادهها را در یک صفحه بارگذاری کنید.
لاراول ابزارهای مختلفی برای پیادهسازی صفحهبندی به صورت ساده و کارآمد فراهم میکند.
لاراول به صورت پیشفرض از صفحهبندی برای مدلهای Eloquent پشتیبانی میکند. برای استفاده از صفحهبندی، شما فقط نیاز به متد paginate()
دارید.
paginate()
متد paginate()
به شما این امکان را میدهد که نتایج را به تعداد مشخصی در هر صفحه تقسیم کنید.
فرض کنید که میخواهید تمام کاربران را به صورت صفحهبندی شده نمایش دهید:
در اینجا، User::paginate(10)
10 کاربر در هر صفحه برمیگرداند.
در ویو، شما میتوانید از {{ $users->links() }}
برای نمایش لینکهای صفحهبندی استفاده کنید. لاراول به طور خودکار لینکهای صفحهبندی را به شما میدهد.
این کد لیستی از کاربران را در هر صفحه نمایش میدهد و در انتهای صفحه لینکهای صفحهبندی را به طور خودکار تولید میکند.
همچنین میتوانید از صفحهبندی با Query Builder استفاده کنید. در این حالت، به جای استفاده از مدل Eloquent، از DB
یا Query Builder
لاراول استفاده میکنید.
paginate()
با Query Builder
گاهی ممکن است نیاز داشته باشید تا صفحهبندی را سفارشی کنید، مثل تغییر تعداد آیتمها در هر صفحه، یا تغییر ظاهر لینکها. لاراول امکان سفارشیسازی صفحهبندی را فراهم کرده است.
شما میتوانید تعداد آیتمهایی که در هر صفحه میخواهید نمایش داده شود را به طور داینامیک از درخواست کاربر دریافت کنید. مثلاً میتوانید تعداد آیتمها را از URL یا فرم ورودی دریافت کنید.
در اینجا، تعداد آیتمها از ورودی per_page
در درخواست (Request) گرفته میشود و اگر موجود نبود، به صورت پیشفرض 10 در نظر گرفته میشود.
اگر بخواهید صفحهبندی را به صورت Ajax پیادهسازی کنید تا نیازی به بارگذاری مجدد صفحه نباشد، میتوانید به سادگی از جاوااسکریپت و Ajax برای بارگذاری دادههای صفحه جدید استفاده کنید.
در ابتدا، صفحهبندی را به همان صورت معمولی پیادهسازی میکنید، اما با ارسال درخواست Ajax بهجای بارگذاری مجدد کامل صفحه.
سپس، نتیجه را به صورت داینامیک در صفحه نمایش میدهید.
در این مثال، وقتی که کاربر روی یکی از لینکهای صفحهبندی کلیک کند، یک درخواست Ajax ارسال میشود و دادههای صفحه جدید بدون بارگذاری مجدد صفحه، بارگذاری میشود.
استفاده از paginate()
: با استفاده از متد paginate()
میتوانید دادهها را به صفحات مختلف تقسیم کنید.
نمایش صفحهبندی با {{ $users->links() }}
: برای نمایش لینکهای صفحهبندی در Blade از این متد استفاده کنید.
سفارشیسازی: شما میتوانید تعداد آیتمها در هر صفحه را به طور داینامیک از ورودی کاربر تنظیم کنید.
صفحهبندی Ajax: با استفاده از درخواستهای Ajax میتوانید دادهها را بدون بارگذاری مجدد صفحه نمایش دهید.
این ویژگی در لاراول، برای کار با دادههای زیاد بسیار مفید است و تجربه کاربری بهتری را فراهم میکند.