ahmadajah03 Thu Apr 2020 1 year ago

Laravel 7/6 Paginate dengan Collection atau Array

Dalam tutorial ini, saya ingin memandu cara membuat pagination dari array atau object collection di aplikasi laravel 7/6. kita akan membuat laravel 7/6 paginate dari contoh array. Contoh ini akan membantu membuat object collection paginate di laravel 7/6.

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 6.

Dalam contoh ini, kita akan dengan mudah membuat satu route 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 6. maka Anda hanya perlu memanggil tampilan dan meneruskan variabel hasil. Anda dapat menggunakan seperti objek paginate Anda.

Jadi, mari kita lihat contoh di bawah ini langkah demi langkah.

Buat Route

Pada langkah berikutnya, kami akan menambahkan satu route baru di file web.php. route kita akan memanggil metode pengontrol 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 6 CRUD'],
            ['id'=>2, 'title'=>'Laravel 6 Ajax CRUD'],
            ['id'=>3, 'title'=>'Laravel 6 CORS Middleware'],
            ['id'=>4, 'title'=>'Laravel 6 Autocomplete'],
            ['id'=>5, 'title'=>'Laravel 6 Image Upload'],
            ['id'=>6, 'title'=>'Laravel 6 Ajax Request'],
            ['id'=>7, 'title'=>'Laravel 6 Multiple Image Upload'],
            ['id'=>8, 'title'=>'Laravel 6 Ckeditor'],
            ['id'=>9, 'title'=>'Laravel 6 Rest API'],
            ['id'=>10, 'title'=>'Laravel 6 Pagination'],
        ];
  
        $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);
    }
}

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:

resources/views/ paginate.blade..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 ...

 

paginate array laravel collection laravel pagination laravel