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

Membuat Resource Customer


Pada materi kali ini, kita semua akan belajar membuat resource untuk data customer, pada resource ini kita juga hanya akan butuh halaman index-nya saja. Karena datanya nanti dibuat ketika si customer register pada halaman frontend.

Langkah 1 - Membuat Resource Customer

Silahkan teman-teman jalankan perintah berikut ini di dalam terminal/CMD dan pastikan berada di dalam project Laravel-nya.

go
php artisan make:filament-resource Customer

Jika perintah di atas berhasil dijalankan, maka kita akan mendapatkan beberapa file, yang berada di dalam folder app/Filament/Resources.

lua
. +-- CustomerResource.php +-- CustomerResource | +-- Pages | | +-- CreateCustomer.php | | +-- EditCustomer.php | | +-- ListCustomers.php

Langkah 2 - Mengubah Icon di Sidebar dan

Pertama, kita akan ubah icon customer yang ada pada sidebar, silahkan teman-teman buka file app/Filament/Resources/CustomerResource.php, kemudian cari kode berikut ini.

php
protected static ?string $navigationIcon = 'heroicon-o-rectangle-stack';

Dan ubahlah menjadi seperti berikut ini.

php
protected static ?string $navigationIcon = 'heroicon-o-user-group';

Sekarang, silahkan teman-teman reload project-nya, maka icon di sidebar akan berubah.

Langkah 3 - Mengatur Urutan dan Grouping Menu

Disini kita akan mengatur grouping menu pada bagian sidebar dan juga mengatur urutan dari menu agar sesuai dengan yang kita inginkan.

Silahkan buka file app/Filament/Resources/CustomerResource.php, kemudian tambahkan kode berikut ini di dalamnya, atau tepatnya dibawah $navigationIcon.

csharp
protected static ?string $navigationGroup = 'Ratings & Customers'; public static function getNavigationSort(): ?int { return 7; }

Di atas, kita atur menu customers di dalam sebuah group yang bernama Ratings & Customers dan kita berikan urutan nomor 7. Artinya akan diletakkan di bawah menu Ratings & Review.

Langkah - 4 - Disable Create Data

Sekarang kita akan menamabhkan sebuah method yang mana method ini akan men-disable fitur create data di dalam resource Customer.

Silahkan buka file app/Filament/Resources/CustomerResource.php, kemudian tambahkan kode berikut ini di dalamnya.

csharp
public static function canCreate(): bool { return false; }

Kemudian ubah pada bagian kode ini.

php
public static function getPages(): array { return [ 'index' => Pages\ListCustomers::route('/'), 'create' => Pages\CreateCustomer::route('/create'), 'edit' => Pages\EditCustomer::route('/{record}/edit'), ]; }

Menjadi seperti berikut ini.

php
public static function getPages(): array { return [ 'index' => Pages\ListCustomers::route('/'), ]; }

Jadi di atas kita sisakan hanya untuk index page saja. Sekarang jika teman-teman reload project-nya dan klik pada menu Customers, maka hasilnya kurang lebih seperti berikut ini.