Resource ini nantinya tidak akan kita gunakan untuk proses CRUD, karena data yang akan ditampilkan adalah data cart yang nanti dimasukkan oleh customer-customer melalui halaman frontend. Sehingga nanti pada resource ini kita akan nonaktifkan fitur create data-nya.
Langkah 1 - Membuat Resource Cart
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 Cart
Jika perintah di atas berhasil dijalankan, maka kita akan mendapatkan beberapa file, yang berada di dalam folder app/Filament/Resources.
lua
.
+-- CartResource.php
+-- CartResource
| +-- Pages
| | +-- CreateCart.php
| | +-- EditCart.php
| | +-- ListCarts.php
Langkah 2 - Mengubah Icon di Sidebar dan
Pertama, kita akan ubah icon carts yang ada pada sidebar, silahkan teman-teman buka file app/Filament/Resources/CartResource.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-shopping-cart';
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/CartResource.php, kemudian tambahkan kode berikut ini di dalamnya, atau tepatnya dibawah $navigationIcon.
csharp
protected static ?string $navigationGroup = 'Carts & Orders';
public static function getNavigationSort(): ?int
{
return 4;
}
Di atas, kita atur menu carts di dalam sebuah group yang bernama Carts & Orders dan kita berikan urutan nomor 4. Artinya akan diletakkan di bawah menu Sliders.
Langkah - 4 - Disable Create Data
Sekarang kita akan menamabhkan sebuah method yang mana method ini akan men-disable fitur create data di dalam resource Cart.
Silahkan buka file app/Filament/Resources/CartResource.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\ListCarts::route('/'),
'create' => Pages\CreateCart::route('/create'),
'edit' => Pages\EditCart::route('/{record}/edit'),
];
}
Menjadi seperti berikut ini.
php
public static function getPages(): array
{
return [
'index' => Pages\ListCarts::route('/'),
];
}
Jadi di atas kita sisakan hanya untuk index page saja. Sekarang jika teman-teman reload project-nya dan klik pada menu Carts, maka hasilnya kurang lebih seperti berikut ini.
Bisa teman-teman lihat, kita tidak menemukan button New cart, karena kita sudah men-disable-nya pada langkah di atas.
