Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Filament Relation Pages

Filament Relation Pages Laravel Package

gheith3/filament-relation-pages

Filament Relation Pages lets you add fully custom, free-form tabs alongside Relation Managers in any resource—no forced table or relationship. Build pages with Filament schema components, Blade/HTML, Alpine.js, and more. Includes an artisan generator.

View on GitHub
Deep Wiki
Context7

A Filament plugin to add custom free-form pages as tabs alongside Relation Managers

Frequently asked questions about Filament Relation Pages
How do I add custom tabs alongside Filament Relation Managers without using tables?
Use the `make:filament-relation-page` artisan command to generate a RelationPage class. Define your UI with Filament schemas, Blade views, or Alpine.js in the `content()` method. The package replaces the default table with your custom tab logic while keeping the relation manager intact.
Does this package work with Filament v5 and Laravel 13?
Yes, the package officially supports Filament v4 and v5, as well as Laravel 12 and 13. The codebase is designed to minimize breaking changes, so upgrades between these versions are straightforward. Always check the release notes for version-specific updates.
Can I use Blade templates or Alpine.js in my Relation Pages?
Absolutely. The package allows you to return Blade views directly or mix Filament schemas with Alpine.js for dynamic interactivity. For example, you can render a Blade file in the `getView()` method or use schema components with Alpine.js for reactive UIs.
What’s the performance impact of lazy-loading Relation Pages?
Lazy-loading (`$isLazy = true`) defers tab initialization until clicked, improving initial page load times. However, the first access to a lazy-loaded tab may introduce a brief delay. Test with your dataset size—this is ideal for resources with many tabs or heavy computations.
How do I customize the tab title and icon for my Relation Page?
Define `static $title` and `static $icon` in your RelationPage class. For example, `protected static ?string $title = 'Dashboard';` and `protected static string $icon = 'heroicon-o-cog'`. The package uses these properties to render the tab in the Relation Manager UI.
Will this package break if Filament updates its internal methods?
The package relies on Filament’s stable public methods (e.g., `HasRelationManagers`, `canViewForRecord`) and avoids internal APIs. While Filament’s core changes could theoretically impact compatibility, the package’s minimal surface area reduces risk. Monitor Filament’s changelog for major updates.
Can I use Relation Pages for real-time data updates, like WebSocket interactions?
Relation Pages support Livewire’s reactivity, so you can use Livewire’s `@entangle` or `@on` directives for real-time updates. For WebSocket integration, combine this with Laravel Echo or Livewire’s built-in WebSocket support. Complex interactions may require additional JavaScript or Livewire logic.
How do I test Relation Pages in my Laravel application?
Test Relation Pages like any other Filament resource. Use Filament’s testing helpers (e.g., `getFilamentResource()`) to interact with the Relation Manager and verify tab rendering. Mock data for related models to simulate edge cases, such as empty relations or large datasets.
Are there alternatives to Relation Pages for adding custom tabs in Filament?
For simple customization, you can extend Filament’s built-in `RelationManager` using `getTabs()` or `configureRelationManager()`. However, these methods are limited to table-based UIs. For free-form content, packages like `spatie/laravel-activitylog` (for audit tabs) or custom Livewire components are alternatives, but they lack Relation Pages’ tight integration.
How do I handle upgrades when Filament releases a new major version?
Check the package’s changelog for Filament version compatibility. If upgrading Filament breaks Relation Pages, review the package’s `canViewForRecord()` or `getTabComponent()` methods for deprecations. The package’s abstract base class (`RelationPage`) isolates most changes, so updates are typically minimal. Always back up custom stubs and Blade templates.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
daikazu/eloquent-salesforce-objects
unseen-codes/chat
romalytar/yammi-jobs-monitoring-laravel
kisame76/filament-db-table-state
nqxcode/laravel-lucene-search
dpfx/laravel-livewire-wizards
workos/workos-php-laravel
sofa/laravel-global-scope
nawasara/auth-primitives
adhocrat-io/arkhe-main
make-dev/orca-harpoon
itsemon245/lamet
baks-dev/dashboard
amoifr/pickle-panther-bundle
make-dev/orca
dmstr/symfony-system-resources-bundle
dmstr/symfony-job-queue-bundle
dmstr/openapi-json-schema-bundle
dmstr/keycloak-security-bundle
dmstr/doctrine-audit-log-bundle