components(static::getForm()); } public static function getForm(): array { return [ TextInput::make('name') ->label(__('Name')) ->required() ->maxLength(255), TextInput::make('url') ->label(__('URL')) ->required() ->maxLength(255), TextInput::make('icon') ->label(__('Icon')) ->maxLength(255), TextInput::make('order') ->label(__('Order')) ->numeric() ->default(0), Select::make('parent_id') ->label(__('Parent Navigation')) ->relationship('parent', 'name') ->nullable(), ]; } #[\Override] public static function table(Table $table): Table { return $table ->columns(static::getTable()); } public static function getTable(): array { return [ TextColumn::make('id') ->label(__('ID')) ->sortable(), TextColumn::make('name') ->label(__('Name')) ->searchable(), TextColumn::make('url') ->label(__('URL')), TextColumn::make('order') ->label(__('Order')) ->sortable(), TextColumn::make('parent.name') ->label(__('Parent')), ]; } #[\Override] public static function getRelations(): array { return [ SubNavigationsRelationManager::class, ]; } #[\Override] public static function getPages(): array { return [ 'index' => ListNavigations::route('/'), 'create' => CreateNavigation::route('/create'), 'edit' => EditNavigation::route('/{record}/edit'), ]; } }