$livewire, Action class, Resource::getUrl()) without coupling to internal Filancements, ensuring long-term compatibility with Filament 4.x/5.x.getHeaderActions()).WithRecordNavigation trait and overrides, making it adaptable to complex use cases (e.g., tenant-scoped navigation, status-filtered records).ResolvesAdjacentRecord) avoids N+1 query pitfalls common in pagination/navigation UIs.getPages() convention, enabling navigation to non-standard routes (e.g., audit logs, custom views).getPreviousRecord()) require precise SQL knowledge to avoid edge cases (e.g., duplicate timestamps, soft-deleted records).NavigationPage::custom() demands exact string matches to getPages() keys—typos or refactoring can break navigation.$livewire injection; future Filament changes to this API could require updates (though unlikely given its stability).order_column (e.g., created_at).Data Model Suitability:
order_column (default: id) indexed? If not, will navigation performance degrade on large datasets?order_column that could break boundary detection?Customization Needs:
WithRecordNavigation trait is essential.view/edit) that need navigation support?UI/UX Alignment:
mod+left) or custom icons/labels?Testing Coverage:
PostResource) to validate:
id ordering, view page navigation).PreviousRecordAction::make() and NextRecordAction::make() in getHeaderActions().php artisan vendor:publish --tag=filament-record-nav-config) to adjust order_column or sort directions if needed.WithRecordNavigation trait for custom query logic (e.g., filtering by status).navigateTo(NavigationPage::Edit) or custom() for resources with complex workflows.ViewRecord/EditRecord pages.order_column (default: id) is indexed for performance.getHeaderActions() (zero-config).config/filament-record-nav.php.$livewire injection).getPreviousRecord()) to verify logic.order_column values are unique and indexed.getPages() exactly.order_column if queries are slow.order_column (e.g., created_at) is indexed.| Scenario | Impact | Mitigation |
|---|---|---|
order_column unindexed |
Slow queries, UI lag | Add DB index to order_column. |
Duplicate order_column values |
Broken boundary detection | Use a composite key (e.g., created_at + id). |
| Custom route name mismatch | Navigation fails (404) | Validate route names against getPages(). |
| Concurrent record deletion | Navigation to non-existent record | Add UI feedback (e.g., "Record no longer exists"). |
| Filament major update | API compatibility break | Test package after Filament updates. |
getHeaderActions().WithRecordNavigation trait for complex scenarios.getPreviousRecord()/getNextRecord() for custom logic.How can I help you explore Laravel packages today?