ahmadajah03 Thu Apr 2020 1 year ago

Bagaimana Cara Membuat Pagination dari Array di Laravel?

Hari ini, saya ingin berbagi dengan Anda contoh konversi array ke pagination di laravel. saya akan menunjukkan cara membuat pagination dari custom array di laravel. Anda dapat dengan mudah melakukannya pagination laravel dengan array. langkah demi langkah solusi laravel paginate dari array.

Kami akan membuat objek koleksi khusus kami dengan array dan membuat pagination menggunakan laravel. kita akan menggunakan fasade Paginator dan LengthAwarePaginator untuk membuat pagination dari custom array di laravel.

Dalam contoh ini, kita akan dengan mudah membuat satu rute dan memanggil metode pengontrol. bahwa metode pengontrol kami akan membuat array kustom kami dan mengubahnya menjadi objek koleksi. kami juga membuat satu paginate () di controller yang sama untuk membuat pagination di laravel. maka Anda hanya perlu memanggil tampilan dan meneruskan variabel hasil. Anda dapat menggunakan seperti objek paginate Anda.

Buat Route

Pada langkah berikutnya, kami akan menambahkan satu rute baru di file web.php. route kita akan memanggil metode controller Jadi mari kita buat kedua route seperti yang tercantum di bawah ini:

routes/web.php

Route::get('paginate', 'PaginationController@index');

Buat Controller

Di sini, kita akan membuat PaginationController dengan dua metode, satu untuk route panggilan dan yang lainnya untuk membuat pagination khusus. Jadi mari kita tambahkan controller seperti di bawah ini:

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'=>'Laravel CRUD'],
            ['id'=>2, 'title'=>'Laravel Ajax CRUD'],
            ['id'=>3, 'title'=>'Laravel CORS Middleware'],
            ['id'=>4, 'title'=>'Laravel Autocomplete'],
            ['id'=>5, 'title'=>'Laravel Image Upload'],
            ['id'=>6, 'title'=>'Laravel Ajax Request'],
            ['id'=>7, 'title'=>'Laravel Multiple Image Upload'],
            ['id'=>8, 'title'=>'Laravel Ckeditor'],
            ['id'=>9, 'title'=>'Laravel Rest API'],
            ['id'=>10, 'title'=>'Laravel Pagination'],
        ];
  
        $data = $this->paginate($myArray);
   
        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);
    }
}

Buat File View

Di sini, kita hanya perlu membuat file blade untuk mencetak data. jadi mari kita buat file blade sederhana seperti di bawah ini:

app/Http/Controllers/PaginationController.php

<div class="container">
    <table class="table table-bordered">
        <tr>
            <th>Id</th>
            <th>Title</th>
        </tr>
        @foreach($data as $post)
        <tr>
            <td>{{ $post->id }}</td>
            <td>{{ $post->title }}</td>
        </tr>
        @endforeach
    </table>
</div>
   
{{ $data->links() }}

Sekarang Anda dapat menjalankan dan memeriksa.

Saya harap ini dapat membantu Anda ...

 

custom pagination in array pagination laravel