Wed Oct 2020 2 years ago

Contoh Tutorial elasticsearch dengan Pagination Laravel

Jika Anda belum menginstal elasticsearch dan tidak tahu cara menginstal elasticsearch di laravel maka Anda harus melihat tautan di bawah ini terlebih dahulu, di tautan ini Anda dapat mengatur elasticsearch dari awal seperti paket instal, gunakan dengan model laravel dll:

Bagaimana Cara Menggunakan elasticsearch laravel

Setelah menyelesaikan langkah link diatas, kita bisa membuat elasticsearch dengan tampilan pagination menggunakan laravel pagination eloquent. Setelah mengimplementasikan contoh ini kita bisa menemukan layout seperti di bawah link.

Pratinjau

Ok, kita hanya perlu sedikit perubahan dan kita bisa membuat pagination di aplikasi laravel kita. jadi pertama-tama buka pengontrol ItemSearchController.php dan ganti metode indeks dengan cara ini.

app/Http/Controllers/ItemSearchController.php

....
/**
 * Display a listing of the resource.
 *
 * @return \Illuminate\Http\Response
 */
public function index(Request $request)
{
    if($request->has('search')){


        $page = $request->input('page', 1);
        $paginate = 3;


        $items = Item::searchByQuery(['match' => ['title' => $request->input('search')]], null, null, $paginate, $page);


        $offSet = ($page * $paginate) - $paginate;
        $itemsForCurrentPage = $items->toArray();  
        $items = new \Illuminate\Pagination\LengthAwarePaginator($itemsForCurrentPage, $items->totalHits(), $paginate, $page);
        $items->setPath('ItemSearch');


    }


    return view('ItemSearch',compact('items'));
}
....

Ok, akhirnya kita hanya perlu me-render tampilan pagination menggunakan laravel pagination dengan eloquent di file blade. jadi buka file ItemSearch.blade.php dan ubah ini:

ItemSearch.blade.php

.....
<div class="col-lg-12">
    @if(!empty($items))
        @foreach($items as $key => $value)
            <h3 class="text-danger">{{ $value['title'] }}</h3>
            <p>{{ $value['description'] }}</p>
        @endforeach
        {!! $items->appends(Input::all())->render() !!}
    @endif
</div>
....

Coba yang ini......

laravel elasticsearch laravel tutorial example