schema([ Card::make() ->schema([ TextInput::make('title'), RichEditor::make('description'), FileUpload::make('image') ->image()->imageCropAspectRatio('1:1') ->enableDownload()->directory('about') ->getUploadedFileNameForStorageUsing(function (TemporaryUploadedFile $file): string { return (string) str($file->getClientOriginalName())->prepend(now()->timestamp); }), FileUpload::make('logo')->image() ->enableDownload()->directory('logo') ->getUploadedFileNameForStorageUsing(function (TemporaryUploadedFile $file): string { return (string) str($file->getClientOriginalName())->prepend(now()->timestamp); }), TextInput::make('phone1')->tel(), TextInput::make('phone2')->tel(), TextInput::make('email1')->email(), TextInput::make('email2')->email(), Textarea::make('address'), Textarea::make('map'), TextInput::make('facebook')->url(), TextInput::make('instagram')->url(), TextInput::make('twitter')->url(), TextInput::make('youtube')->url(), KeyValue::make('meta')->reorderable() ->keyLabel('Type')->valueLabel('Description') ->keyPlaceholder('Enter Question')->valuePlaceholder('Enter Answer') ]) ]); } public static function table(Table $table): Table { return $table ->columns([ TextColumn::make('title'), ImageColumn::make('image'), ImageColumn::make('logo'), TextColumn::make('phone'), TextColumn::make('phone2'), TextColumn::make('email'), TextColumn::make('email2'), TextColumn::make('address')->limit(50), TextColumn::make('map')->limit(50), TextColumn::make('facebook'), TextColumn::make('instagram'), TextColumn::make('twitter'), TextColumn::make('youtube'), ]) ->filters([ // Tables\Filters\TrashedFilter::make(), ]) ->actions([ Tables\Actions\EditAction::make(), Tables\Actions\DeleteAction::make() ->after(function (Destination $record) { // delete single if ($record->image) { Storage::disk('public')->delete($record->image); } // delete multiple /*if ($record->galery) { foreach ($record->galery as $ph) Storage::disk('public/storage')->delete($ph); }*/ }), Tables\Actions\ForceDeleteAction::make(), Tables\Actions\RestoreAction::make(), ]) ->bulkActions([ Tables\Actions\DeleteBulkAction::make(), Tables\Actions\ForceDeleteBulkAction::make(), Tables\Actions\RestoreBulkAction::make(), ]); } public static function getPages(): array { return [ 'index' => Pages\ManageAbouts::route('/'), ]; } public static function getEloquentQuery(): Builder { return parent::getEloquentQuery() ->withoutGlobalScopes([ SoftDeletingScope::class, ]); } }