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.
