Admin Panel - Pages
Getting started
Filament allows you to create completely custom pages for the admin panel.
Creating a page
To create a new page, you can use:
php artisan make:filament-page Settings
This command will create two files - a page class in the /Pages
directory of the Filament directory, and a view in the /pages
directory of the Filament views directory.
Page classes are all full-page Livewire components with a few extra utilities you can use with the admin panel.
Conditionally hiding pages in navigation
You can prevent pages from appearing in the menu by overriding the shouldRegisterNavigation()
method in your Page class. This is useful if you want to control which users can see the page in the sidebar.
protected static function shouldRegisterNavigation(): bool{ return auth()->user()->canManageSettings();}
Please be aware that all users will still be able to visit this page through its direct URL, so to fully limit access you must also also check in the mount()
method of the page:
public function mount(): void{ abort_unless(auth()->user()->canManageSettings(), 403);}
Customization
Filament will automatically generate a title, navigation label and URL (slug) for your page based on its name. You may override it using static properties of your page class:
protected static ?string $title = 'Custom Page Title'; protected static ?string $navigationLabel = 'Custom Navigation Label'; protected static ?string $slug = 'custom-url-slug';
You may also specify a custom header and footer view for any page. You may return them from the getHeader()
and getFooter()
methods:
use Illuminate\Contracts\View\View; protected function getHeader(): View{ return view('filament.settings.custom-header');} protected function getFooter(): View{ return view('filament.settings.custom-footer');}
Edit on GitHubStill need help? Join our Discord community or open a GitHub discussion