schema([ Card::make() ->schema([ TextInput::make('name'), RichEditor::make('description')->placeholder('Enter Description of Tour'), FileUpload::make('image') ->image()->imageCropAspectRatio('3:2') ->enableDownload()->directory('tour') ->getUploadedFileNameForStorageUsing(function (TemporaryUploadedFile $file): string { return (string) str($file->getClientOriginalName())->prepend(now()->timestamp); }), TextInput::make('location')->placeholder('Delhi, Uttarakhand etc'), TextInput::make('price')->placeholder('10000')->numeric(), TextInput::make('person')->placeholder('1 Person'), TextInput::make('time_period')->placeholder('7 Day/ 6 Night'), TextInput::make('rating')->placeholder('Out of Five Star'), KeyValue::make('itinerary') ->keyLabel('Plan')->valueLabel('Description') ->keyPlaceholder('Enter Day And Plan Title')->valuePlaceholder('Enter Description'), FileUpload::make('tour_gallery')->multiple()->image() ->imageCropAspectRatio('16:9')->directory('tour_gallery') ->maxFiles(5)->enableDownload()->enableReordering() ->getUploadedFileNameForStorageUsing(function (TemporaryUploadedFile $file): string { return (string) str($file->getClientOriginalName())->prepend(now()->timestamp); }), KeyValue::make('faqs')->reorderable() ->keyLabel('Question')->valueLabel('Answer') ->keyPlaceholder('Enter Question')->valuePlaceholder('Enter Answer') ]) ]); } public static function table(Table $table): Table { return $table ->columns([ TextColumn::make('name'), TextColumn::make('description')->wrap()->html()->limit(100), ImageColumn::make('image'), TextColumn::make('location'), TextColumn::make('person'), TextColumn::make('time_period'), TextColumn::make('price') ]) ->filters([ // Tables\Filters\TrashedFilter::make(), ]) ->actions([ Tables\Actions\EditAction::make(), Tables\Actions\DeleteAction::make() ->after(function (Tour $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\ManageTours::route('/'), ]; } public static function getEloquentQuery(): Builder { return parent::getEloquentQuery() ->withoutGlobalScopes([ SoftDeletingScope::class, ]); } }