components([ TextInput::make('ordnungszahl')->numeric(), TextInput::make('name'), Select::make('textblock_kennung_id') ->label('Textblock Art') ->options(function () { $relatedOptions = TextblockKennung::all()->pluck('name', 'id')->toArray(); return ['0' => 'ohne Textblock'] + $relatedOptions; }) ->live(), RichEditor::make('textblock') ->hidden(fn (Get $get): bool => ! $get('textblock_kennung_id')) ->toolbarButtons([ ['bold', 'italic', 'underline', 'strike', 'subscript', 'superscript'], ]), ])->columns(1); } public function table(Table $table): Table { return $table ->recordTitleAttribute('text') ->columns([ // TextColumn::make('sort'), TextColumn::make('ordnungszahl') ->getStateUsing(fn ($record): string => $record->ordnungszahl == '0' ? '' : number_format($record->ordnungszahl, 2)), IconColumn::make('textblock_kennung_id') ->label('Text') ->alignCenter() ->icon('phosphor-article') ->color(fn (string $state): string => match ($state) { '0' => 'gray', default => 'info', }), TextColumn::make('name') ->description(fn ($record): string => $record->textblock_kennung->name ?? ''), TextColumn::make('seite') ->alignCenter() ->badge() ->color('info') ->getStateUsing(fn ($record): string => $record->seite == '0' ? '...' : $record->seite), ]) ->reorderable('sort') ->filters([ // ]) ->headerActions([ CreateAction::make(), ]) ->recordActions([ EditAction::make()->iconButton()->color('gray'), DeleteAction::make()->iconButton(), ]) ->toolbarActions([ BulkActionGroup::make([ DeleteBulkAction::make(), ]), ]); } }