Resource doesn't show in navigation
I have migrated from V3, all seemed fine except none of my resource show in the navigation - created a blank one, same result.
<?php
namespace App\Providers\Filament;
use ***
class AdminPanelProvider extends PanelProvider
{
public function panel(Panel $panel): Panel
{
return $panel
->default()
->brandName('Laravel')
->id('admin')
->path('admin')
->font('Poppins')
->login(Login::class)
->colors([
'primary' => Color::Yellow,
])
->discoverResources(in: app_path('Filament/Resources'), for: 'App\Filament\Resources')
->discoverPages(in: app_path('Filament/Pages'), for: 'App\Filament\Pages')
->pages([
Dashboard::class,
])
->navigationItems([
NavigationItem::make('Back to website')
->url('https://example.com')
->icon('heroicon-o-link')
->openUrlInNewTab(),
])
->discoverWidgets(in: app_path('Filament/Widgets'), for: 'App\Filament\Widgets')
->viteTheme('resources/css/filament/admin/theme.css')
->middleware([
EncryptCookies::class,
AddQueuedCookiesToResponse::class,
StartSession::class,
AuthenticateSession::class,
ShareErrorsFromSession::class,
VerifyCsrfToken::class,
SubstituteBindings::class,
DisableBladeIconComponents::class,
DispatchServingFilamentEvent::class,
])
->authMiddleware([
Authenticate::class,
]);
}
}
<?php
namespace App\Providers\Filament;
use ***
class AdminPanelProvider extends PanelProvider
{
public function panel(Panel $panel): Panel
{
return $panel
->default()
->brandName('Laravel')
->id('admin')
->path('admin')
->font('Poppins')
->login(Login::class)
->colors([
'primary' => Color::Yellow,
])
->discoverResources(in: app_path('Filament/Resources'), for: 'App\Filament\Resources')
->discoverPages(in: app_path('Filament/Pages'), for: 'App\Filament\Pages')
->pages([
Dashboard::class,
])
->navigationItems([
NavigationItem::make('Back to website')
->url('https://example.com')
->icon('heroicon-o-link')
->openUrlInNewTab(),
])
->discoverWidgets(in: app_path('Filament/Widgets'), for: 'App\Filament\Widgets')
->viteTheme('resources/css/filament/admin/theme.css')
->middleware([
EncryptCookies::class,
AddQueuedCookiesToResponse::class,
StartSession::class,
AuthenticateSession::class,
ShareErrorsFromSession::class,
VerifyCsrfToken::class,
SubstituteBindings::class,
DisableBladeIconComponents::class,
DispatchServingFilamentEvent::class,
])
->authMiddleware([
Authenticate::class,
]);
}
}
7 Replies
<?php
namespace App\Filament\Resources\Organizers;
use App\Filament\Resources\Organizers\Pages\CreateOrganizer;
use App\Filament\Resources\Organizers\Pages\EditOrganizer;
use App\Filament\Resources\Organizers\Pages\ListOrganizers;
use App\Filament\Resources\Organizers\Pages\ViewOrganizer;
use App\Filament\Resources\Organizers\Schemas\OrganizerForm;
use App\Filament\Resources\Organizers\Schemas\OrganizerInfolist;
use App\Filament\Resources\Organizers\Tables\OrganizersTable;
use App\Models\Organizer;
use BackedEnum;
use Filament\Resources\Resource;
use Filament\Schemas\Schema;
use Filament\Support\Icons\Heroicon;
use Filament\Tables\Table;
class OrganizerResource extends Resource
{
protected static ?string $model = Organizer::class;
protected static string|BackedEnum|null $navigationIcon = Heroicon::OutlinedRectangleStack;
protected static ?string $recordTitleAttribute = 'Organizer';
public static function form(Schema $schema): Schema
{
return OrganizerForm::configure($schema);
}
public static function infolist(Schema $schema): Schema
{
return OrganizerInfolist::configure($schema);
}
public static function table(Table $table): Table
{
return OrganizersTable::configure($table);
}
public static function getRelations(): array
{
return [
//
];
}
public static function getPages(): array
{
return [
'index' => ListOrganizers::route('/'),
'create' => CreateOrganizer::route('/create'),
'view' => ViewOrganizer::route('/{record}'),
'edit' => EditOrganizer::route('/{record}/edit'),
];
}
}
<?php
namespace App\Filament\Resources\Organizers;
use App\Filament\Resources\Organizers\Pages\CreateOrganizer;
use App\Filament\Resources\Organizers\Pages\EditOrganizer;
use App\Filament\Resources\Organizers\Pages\ListOrganizers;
use App\Filament\Resources\Organizers\Pages\ViewOrganizer;
use App\Filament\Resources\Organizers\Schemas\OrganizerForm;
use App\Filament\Resources\Organizers\Schemas\OrganizerInfolist;
use App\Filament\Resources\Organizers\Tables\OrganizersTable;
use App\Models\Organizer;
use BackedEnum;
use Filament\Resources\Resource;
use Filament\Schemas\Schema;
use Filament\Support\Icons\Heroicon;
use Filament\Tables\Table;
class OrganizerResource extends Resource
{
protected static ?string $model = Organizer::class;
protected static string|BackedEnum|null $navigationIcon = Heroicon::OutlinedRectangleStack;
protected static ?string $recordTitleAttribute = 'Organizer';
public static function form(Schema $schema): Schema
{
return OrganizerForm::configure($schema);
}
public static function infolist(Schema $schema): Schema
{
return OrganizerInfolist::configure($schema);
}
public static function table(Table $table): Table
{
return OrganizersTable::configure($table);
}
public static function getRelations(): array
{
return [
//
];
}
public static function getPages(): array
{
return [
'index' => ListOrganizers::route('/'),
'create' => CreateOrganizer::route('/create'),
'view' => ViewOrganizer::route('/{record}'),
'edit' => EditOrganizer::route('/{record}/edit'),
];
}
}
do you use policies? Maybe you canView set to false or not proper permission?
@phoenix404dev nope, it really a 'simple' app ... not even policies
check
$panel->->discoverResources(..
if you are optimizing Filament, run php artisan filament:optimize-clear
@Leandro Ferreira that was it ! I didn't even know ... and for sure never used filament:optimize ... runs by default ?
thing i never ran this command ...
learned something thank you !