josespinal / filament-record-navigation
Record navigation from views
Fund package maintenance!
Jose Espinal
Installs: 4 562
Dependents: 2
Suggesters: 0
Security: 0
Stars: 18
Watchers: 1
Forks: 5
Open Issues: 7
Requires
- php: ^8.2
- illuminate/contracts: ^10.0||^11.0
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- larastan/larastan: ^2.9
- laravel/pint: ^1.14
- nunomaduro/collision: ^8.1.1||^7.10.0
- orchestra/testbench: ^9.0.0||^8.22.0
- pestphp/pest: ^2.34
- pestphp/pest-plugin-arch: ^2.7
- pestphp/pest-plugin-laravel: ^2.3
README
Introduction
The Filament Record Navigation Plugin allows seamless navigation through records in a Filament resource's view. With this plugin, you can add "Next" and "Previous" buttons to navigate through records efficiently.
Record.Nav.mp4
Installation
Step 1: Require the package via Composer:
composer require josespinal/filament-record-navigation
The package will automatically register itself.
Usage
Use the Trait in Your Filament Resource Page
In your Filament resource's EditRecord
page, use the HasRecordNavigation
trait to add the navigation functionality. And add the action where you want, for example, the header with getHeaderActions
:
namespace App\Filament\Resources\PostResource\Pages; use App\Filament\Resources\PostResource; use Filament\Resources\Pages\EditRecord; use JoseEspinal\RecordNavigation\Traits\HasRecordNavigation; class EditPost extends EditRecord { use HasRecordNavigation; protected static string $resource = PostResource::class; protected function getHeaderActions(): array { return array_merge(parent::getActions(), $this->getNavigationActions()); } }
Use with existing actions
If you have existing actions, merge them with the navigation actions, like so:
protected function getHeaderActions(): array { $existingActions = [ // Your existing actions here... ]; return array_merge($existingActions, $this->getNavigationActions()); }
Store Record IDs in Session
In your resource's ListRecords
page, include the HasRecordsList
trait as follows:
namespace App\Filament\Resources\PostResource\Pages; use App\Filament\Resources\PostResource; use Filament\Resources\Pages\ListRecords; use JoseEspinal\RecordNavigation\Traits\HasRecordsList; class ListPosts extends ListRecords { use HasRecordsList; protected static string $resource = PostResource::class; }
Changelog
Please see CHANGELOG for more information on what has changed recently.
Credits
License
The MIT License (MIT). Please see License File for more information.