Hai, Sobat Risereaders!
Pada artikel sebelumnya, kita telah membahas langkah-langkah persiapan awal untuk memulai pembuatan aplikasi CRUD sederhana dengan menggunakan Laravel 10 dan Bootstrap 5.
Kita sudah belajar bagaimana membuat model dan migrasi untuk projek, sekaligus menjalankan migrasi. Sekarang, kita akan beralih ke tahap selanjutnya dalam proses pengembangan, yaitu menampilkan data.
Cara Menampilkan Data Aplikasi CRUD
Langkah-langkah menampilkan data buku aplikasi CRUD dalam bentuk tabel:
1. Membuat Controller dan Method
Langkah pertama adalah membuat controller bernama BookController
. Buka terminal kamu, jalankan perintah berikut:
php artisan make:controller BookController
Cari controller BookController
di dalam folder app/Http/Controllers
. Kemudian, mari kita buat method index
untuk menampilkan data buku kita dari database:
// app/Http/Controllers/BookController.php
namespace AppHttpControllers;
// import class Book
use AppModelsBook;
use IlluminateHttpRequest;
class BookController extends Controller
{
public function index(Request $request)
{
// mengambil title dari form pencarian
$title = $request->input('search');
// mengambil data buku dari database
$books = Book::where('title', 'like', "%$title%") // filter data berdasarkan title
->orderByDesc('id') // urutkan data berdasarkan id secara descending
->paginate(5); // menampilkan 5 data per halaman
// mengirim data buku ke view index
return view('books.index', compact('books'));
}
}
2. Membuat Layout
Selanjutnya, kita akan membuat layout untuk view. Buatlah file baru app.blade.php
di dalam folder resources/views/layouts
.
lang="id">
charset="UTF-8">
name="viewport" content="width=device-width, initial-scale=1.0">
http-equiv="X-UA-Compatible" content="ie=edge">
@yield('title')
href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-rbsA2VBKQhggwzxH7pPCaAqO46MgnOM80zW1RWuH61DGLwZJEdK2Kadq2F9CUG65" crossorigin="anonymous">
rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/css/toastr.min.css">
class="bg-light">
class="container my-5">
@yield('content')
// Menampilkan pesan sukses atau error dari session
@if (session()->has('success'))
toastr.success('{{ session('success') }}', 'BERHASIL!');
@elseif (session()->has('error'))
toastr.error('{{ session('error') }}', 'GAGAL!');
@endif
Dengan menggunakan layout, kita dapat memisahkan struktur tampilan dari konten yang dinamis, sehingga memudahkan dalam pengelolaan dan perawatan kode.
3. Membuat View Index
Selanjutnya, kita perlu membuat view books.index
. Buatlah file baru index.blade.php
di dalam folder resources/views/books
.
@extends('layouts.app')
@section('title', 'Daftar Buku')
@section('content')
class="d-flex justify-content-between align-items-center mb-3">
@yield('title')
href="{{ route('books.create') }}" class="btn btn-primary">Tambah Buku
class="card">
class="card-body table-responsive p-0">
class="table table-striped mb-0">
style="width: 150px">Cover
Judul
Deskripsi
style="width: 150px" class="text-center">Aksi
@forelse ($books as $book)
src="{{ asset('storage/books/' . $book->cover) }}" class="img-fluid border rounded">
{{ $book->title }}
{{ $book->description }}
class="text-center">
href="{{ route('books.edit', $book) }}" class="btn btn-sm btn-warning">Edit
@empty
colspan="4" class="text-center">Tidak ada data
@endforelse
@if ($books->hasPages())
class="m-3 mb-0">
{{ $books->links('vendor.pagination.bootstrap-5') }}
@endif
@endsection
4. Publish Pagination
Pada halaman books.index
, kita menggunakan pagination Bootstrap 5, namun viewnya belum dipublikasikan.
Untuk menggunakan pagination tersebut, perlu untuk mempublikasikan viewnya terlebih dahulu. Jalankan perintah berikut di terminal:
php artisan vendor:publish --tag=laravel-pagination
Setelah proses ini selesai, kita dapat menggunakan pagination Bootstrap 5 dalam aplikasi Laravel kita.
5. Mendefinisikan Route
Langkah terakhir adalah mendefinisikan route untuk menampilkan data. Buka file routes/web.php
dan tambahkan route berikut:
// import class BookController
use AppHttpControllersBookController;
use IlluminateSupportFacadesRoute;
Route::get('/', function () {
return view('welcome');
});
// menambahkan route resource books
Route::resource('books', BookController::class);
Di sini, kita mendefinisikan route resource books
yang akan menghasilkan beberapa route untuk menangani berbagai aksi CRUD.
Route ini akan otomatis menghasilkan routes untuk methods yang diperlukan, seperti index
, create
, store
, edit
, update
, dan destroy
. Dengan demikian, kita tidak perlu mendefinisikan routenya satu per satu secara manual.
Berikut adalah hasil route yang menggunakan resource:
6. Menjalankan Aplikasi
Sekarang, saatnya untuk menjalankan aplikasi kita dan melihat hasilnya. Gunakan perintah berikut untuk menjalankan aplikasi:
php artisan serve
Setelah itu, kita dapat mengakses localhost:8000/books dan melihat tampilan tabel yang berisi data dari tabel books
di database
.
Penutup
Pada artikel ini, kita telah mempelajari cara menampilkan data dengan menggunakan Laravel 10 dan Bootstrap 5. Langkah-langkah yang kita pelajari meliputi definisi route, pembuatan controller dan method, serta pembuatan tampilan untuk menampilkan data.
Selanjutnya, pada artikel berikutnya, kita akan membahas langkah-langkah untuk menambahkan data baru ke dalam database. Semoga tutorial ini memberikan manfaat!