Pagination یا صفحه بندی در لاراول 6 با Collection یا آرایه ، در این پست از وب سایت تجاری اپ ما به شما نحوه ایجاد Pagination یا صفحه بندی در laravel 6 با Collection یا آرایه را آموزش خواهیم داد.
ما آبجکت collection سفارشی خود را با آرایه ایجاد خواهیم کرد و صفحه بندی را با استفاده از eloquent لاراول خواهیم ساخت.
ما برای ایجاد صفحه بندی در لاراول 6 با آرایه سفارشی کلاس های Paginator و LengthAwarePaginator را use خواهیم کرد.
در این مثال ما یک route ساده را ایجاد کرده و در این route ما یک متد از یک کنترلر را فراخوانی کرده ایم.همچنین ما در این متد آرایه سفارشی خود را ایجاد کرده و به شی collection تبدیل می کنیم.ما همچنین در همین کنترلر متد دیگری با نام paginate() برای ایجاد Pagination یا صفحه بندی در لاراول 6 ایجاد خواهیم کرد.سپس شما فقط باید view را صدا بزنید و متغیر نتیجه را به آن پاس دهید.
برای یادگیری Pagination یا صفحه بندی در لاراول 6 با Collection شما کافیست گام های زیر را دنبال کنید.
در این مرحله یک route جدید در فایل web.php ایجاد می کنیم. این route متد index را از کنترلر PaginationController صدا می زند.پس کد زیر را در فایل web.php می نویسیم:
routes/web.php
Route::get('paginate', 'PaginationController@index');
در این مرحله یک کنترلر با نام PaginationController به همراه دو متد ایجاد می کنیم ، یک متد که همان متدی می باشد که در route آن را صدا زدیم و دیگری برای ایجاد صفحه بندی یا pagination سفارشی.بنابراین کنترلر با نام مذکور را ایجاد می کنیم و کدهای زیر را در آن وارد می کنم:
همچنین بخوانید: آموزش استفاده از ckeditor همراه با آپلود عکس در لاراول 6
app/Http/Controllers/PaginationController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Pagination\Paginator;
use Illuminate\Support\Collection;
use Illuminate\Pagination\LengthAwarePaginator;
class PaginationController extends Controller
{
/**
* The attributes that are mass assignable.
*
* @var array
*/
public function index()
{
$myArray = [
['id'=>1, 'title'=>'آموزش استفاده از ckeditor همراه با آپلود عکس در لاراول 6'],
['id'=>2, 'title'=>'رسم نمودار در لاراول با کتابخانه Highcharts'],
['id'=>3, 'title'=>'آموزش ساخت پنل ادمین با لاراول با استفاده از voyager'],
['id'=>4, 'title'=>'آموزش ایمپورت و اکسپورت کردن فایل اکسل و csv در لاراول 6'],
['id'=>5, 'title'=>'آموزش middleware در لاراول 6'],
['id'=>6, 'title'=>'نحوه ایجاد کنترلر و مدل در لاراول 6 با استفاده از cmd'],
['id'=>7, 'title'=>'چگونه نسخه لاراول را بررسی کنیم ؟'],
['id'=>8, 'title'=>'آموزش مسیردهی Routing در لاراول 6'],
['id'=>9, 'title'=>'آموزش تنظیمات و پیکربندی لاراول 6'],
['id'=>10, 'title'=>'ساختار دایرکتوری فریمورک لاراول laravel'],
];
$myCollectionObj = collect($myArray);
$data = $this->paginate($myCollectionObj);
return view('paginate', compact('data'));
}
/**
* The attributes that are mass assignable.
*
* @var array
*/
public function paginate($items, $perPage = 5, $page = null, $options = [])
{
$page = $page ?: (Paginator::resolveCurrentPage() ?: 1);
$items = $items instanceof Collection ? $items : Collection::make($items);
return new LengthAwarePaginator($items->forPage($page, $perPage), $items->count(), $perPage, $page, $options);
}
}
در این مرحله ما یک فایل blade برای نمایش داده نیاز داریم.بنابراین ما یک فایل blade مانند زیر ایجاد می کنیم:
همچنین بخوانید: رسم نمودار در لاراول با کتابخانه Highcharts
resources/views/paginate.blade.php
<div class="container">
<table class="table table-bordered">
<tr>
<th>شناسه</th>
<th>عنوان</th>
</tr>
@foreach($data as $post)
<tr>
<td>{{ $post->id }}</td>
<td>{{ $post->title }}</td>
</tr>
@endforeach
</table>
</div>
{{ $data->links() }}
همچنین بخوانید: آموزش ساخت پنل ادمین با لاراول با استفاده از voyager
امیدوارم این آموزش برای شما مفید بوده باشد…