Sama seperti sebelumnya, pada resource ini (transaction) kita hanya akan butuh halaman index saja, sehingga nanti untuk create dan edit akan kita disable. Dan nanti kita akan menambahkan custom page untuk menampilkan detail data transaction. Sehingga nanti pada resource ini akan terdapat 2 halaman, yaitu index dan detail data.
Langkah 1 - Membuat Resource Transaction
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 Transaction
Jika perintah di atas berhasil dijalankan, maka kita akan mendapatkan beberapa file, yang berada di dalam folder app/Filament/Resources.
lua
.
+-- TransactionResource.php
+-- TransactionResource
| +-- Pages
| | +-- CreateTransaction.php
| | +-- EditTransaction.php
| | +-- ListTransactions.php
Langkah 2 - Mengubah Icon di Sidebar dan
Pertama, kita akan ubah icon transaction yang ada pada sidebar, silahkan teman-teman buka file app/Filament/Resources/TransactionResource.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-clipboard-document-list';
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/TransactionResource.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 5;
}
Di atas, kita atur menu transactions di dalam sebuah group yang bernama Carts & Orders dan kita berikan urutan nomor 5. Artinya akan diletakkan di bawah menu Carts.
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/TransactionResource.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\ListTransactions::route('/'),
'create' => Pages\CreateTransaction::route('/create'),
'edit' => Pages\EditTransaction::route('/{record}/edit'),
];
}
Menjadi seperti berikut ini.
php
public static function getPages(): array
{
return [
'index' => Pages\ListTransactions::route('/'),
];
}
Jadi di atas kita sisakan hanya untuk index page saja. Sekarang jika teman-teman reload project-nya dan klik pada menu Transactions, maka hasilnya kurang lebih seperti berikut ini.
