Action class and $livewire injection API, ensuring seamless integration with Filament’s ecosystem (v4/v5). Avoids invasive modifications to core Filament or Laravel.WithRecordNavigation) enables custom query logic (e.g., filtering by status, tenant-scoped navigation) without forcing it on all users.$resolvedRecordCache), critical for large datasets.$livewire API, reducing risk of breaking changes across Filament versions.PreviousRecordAction, NextRecordAction) integrate into getHeaderActions() with zero resource or model changes.order_column) can be overridden via published config, reducing per-resource setup.view, edit, and custom routes (registered in getPages()), matching Filament’s resource-based architecture.getPreviousRecord()) may introduce N+1 queries if not optimized (e.g., eager loading). Mitigation: Document best practices (e.g., indexing order_column).order_column values (e.g., created_at with duplicates). Mitigation: Clear docs + config validation for order_column.NavigationPage::custom() requires exact route name matching in getPages(). Mitigation: Runtime validation or IDE hints for route names.published_at)? If so, ensure proper indexing.view/edit) required? Validate getPages() registration.limit to navigation queries.order_column indexed? If not, add it to avoid full-table scans.mod+left)? Package supports this via Filament’s keyBindings().color() and visible() methods.getPreviousRecord()/getNextRecord() in PHPUnit.Resource::getUrl() handles dynamic segments (e.g., {record}).where, orderBy).ViewRecord, EditRecord).getPages() (if using NavigationPage::custom()).created_at vs. id).order_column candidates (e.g., indexed columns) for performance.PostResource) to test:
Edit).php artisan vendor:publish --tag=filament-record-nav-config to customize order_column.getHeaderActions() in target resources.order_column values).verified-view).ViewRecord or EditRecord pages.getPages() via NavigationPage::custom().where('tenant_id', auth()->id())).order_column (e.g., id, created_at) for performance.composer require nben/filament-record-nav
php artisan vendor:publish --tag=filament-record-nav-config # Optional
getHeaderActions() in target pages.order_column and directions in config/filament-record-nav.php.getRecordNavigationUrl() for non-standard routing.order_column) reduce per-resource maintenance.$livewire injection).order_column values (duplicates? distinct?).NavigationPage::custom() matches getPages() keys.order_column is indexed. For >1M records, consider adding limit to navigation queries (e.g., ->take(2)).getPreviousRecord()/getNextRecord() may degrade performance if not optimized (e.g., avoid select(*)).| Failure Scenario | Impact | Mitigation |
|---|---|---|
order_column has duplicate values |
Navigation skips records or fails | Use a unique column (e.g., id) or add tiebreaker (e.g., created_at). |
| Custom route name mismatch | InvalidArgumentException |
Validate NavigationPage::custom() against getPages(). |
| Database connection issues | Buttons disabled indefinitely | Add retry logic or user feedback (e.g., toast). |
| Custom query returns no results | Buttons disabled prematurely | Log queries in overrides for debugging. |
| Filament major version upgrade | Package compatibility break | Test early; fork |
How can I help you explore Laravel packages today?