F
Filament2mo ago
Cem

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
Cem
CemOP2mo ago
<?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'),
];
}
}
I really don't get why ...
phoenix404dev
phoenix404dev2mo ago
do you use policies? Maybe you canView set to false or not proper permission?
Cem
CemOP2mo ago
@phoenix404dev nope, it really a 'simple' app ... not even policies
LeandroFerreira
LeandroFerreira2mo ago
check $panel->->discoverResources(.. if you are optimizing Filament, run php artisan filament:optimize-clear
Cem
CemOP2mo ago
@Leandro Ferreira that was it ! I didn't even know ... and for sure never used filament:optimize ... runs by default ?
Cem
CemOP2mo ago
thing i never ran this command ... learned something thank you !

Did you find this page helpful?