My Course — Membangun Website Food Store Dengan Laravel Filament, Livewire dan Payment Gateway

Menampilkan Data Sliders


Setelah berhasil menampilkan halaman home, maka kita akan lanjutkan belajar bagaimana cara menampilkan data sliders pada halaman home.

Langkah 1 - Get Data Sliders di Class Component

Pertama, kita akan melakukan get data sliders pada class component home, silahkan teman-teman buka file app/Livewire/Web/Home/Index.php, kemudian ubah kode-nya menjadi seperti berikut ini.

php
<?php namespace App\Livewire\Web\Home; use App\Models\Slider; use Livewire\Component; class Index extends Component { public function render() { return view('livewire.web.home.index', [ //get sliders 'sliders' => Slider::latest()->get(), ]); } }

Dari perubahan kode di atas, pertama kita import Model Slider.

perl
use App\Models\Slider;

Kemudian di dalam method render, kita get dan mengirimkan data slider ke view component.

php
//get sliders 'sliders' => Slider::latest()->get(),

Langkah 2 - Menampilkan Data Sliders

Sekarang kita lanjutkan untuk menampilkan data sliders pada halaman home. Silahkan teman-teman buka file resources/views/livewire/web/home/index.blade.php, kemudian ubah kode-nya menjadi seperti berikut ini.

typescript
@section('title') Food Store - Eat Your Favorite Foods @stop @section('keywords') Food Store, Eat Your Favorite Foods @stop @section('description') Food Store - Eat Your Favorite Foods @stop @section('image') {{ asset('images/logo.png') }} @stop <div> <div class="container" style="margin-bottom: 120px"> <!-- Search Bar --> <x-utils.search-bar /> <!-- Sliders --> <div class="row justify-content-center mt-4"> <div class="col-md-6"> <div id="carouselExample" class="carousel slide w-100"> <div class="carousel-inner"> @foreach ($sliders as $key => $slider) <div class="carousel-item @if($key == 0) active @endif"> <img src="{{ asset('/storage/' . $slider->image) }}" class="d-block w-100 rounded"> </div> @endforeach </div> <button class="carousel-control-prev" type="button" data-bs-target="#carouselExample" data-bs-slide="prev"> <span class="carousel-control-prev-icon" aria-hidden="true"></span> <span class="visually-hidden">Previous</span> </button> <button class="carousel-control-next" type="button" data-bs-target="#carouselExample" data-bs-slide="next"> <span class="carousel-control-next-icon" aria-hidden="true"></span> <span class="visually-hidden">Next</span> </button> </div> </div> </div> <!-- Categories --> <!-- Products Popular --> <!-- Products Latest --> </div> </div>

Dari perubahan koe di atas, kita melakukan perulangan data sliders yang dikirimkan oleh class component, disini kita menggunakan directive @foreach.

less
@foreach ($sliders as $key => $slider) //... @endforeach

Langkah 3 - Uji Coba Menampilkan Sliders

Sekarang silahkan reload project-nya, kemudian lihat pada halaman home, jika berhasil maka akan menampilkan hasil seperti berikut ini.