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

Membuat Resource Cart


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.