OwlCyberSecurity - MANAGER
Edit File: CityResource.php
<?php namespace App\Filament\Resources; use App\Filament\Resources\CityResource\Pages; use App\Filament\Resources\CityResource\RelationManagers; use App\Models\City; use Filament\Forms; use Filament\Forms\Components\Section; use Filament\Forms\Components\Select; use Filament\Forms\Components\TextInput; use Filament\Forms\Form; use Filament\Resources\Resource; use Filament\Tables; use Filament\Tables\Columns\TextColumn; use Filament\Tables\Filters\Filter; use Filament\Tables\Filters\SelectFilter; use Filament\Tables\Table; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\SoftDeletingScope; class CityResource extends Resource { protected static ?string $model = City::class; protected static ?string $navigationIcon = 'heroicon-o-map-pin'; protected static ?string $modelLabel = 'شهر'; protected static ?string $pluralModelLabel = 'شهر ها'; protected static ?string $slug = 'cities'; protected static ?string $navigationGroup = 'تنظیمات'; protected static ?int $navigationSort = 6; public static function form(Form $form): Form { return $form ->schema([ Section::make()->schema([ TextInput::make('title')->label('نام')->required(), Select::make('state_id')->relationship('state', 'title')->label('استان')->required(), ]), ]); } public static function table(Table $table): Table { return $table ->columns([ TextColumn::make('id')->label('id'), TextColumn::make('state.title')->label('استان'), TextColumn::make('title')->label('نام'), ]) ->filters([ Filter::make('title')->form([ TextInput::make('title')->label('نام'), ])->query(fn(Builder $query, array $data): Builder => $query->when( $data['title'], fn(Builder $query, $data): Builder => $query->where('cities.title', 'like', '%' . $data . '%'), )), SelectFilter::make('state')->label('استان')->relationship('state', 'title'), ]) ->actions([ Tables\Actions\EditAction::make(), ]) ->bulkActions([ ]) ->emptyStateActions([ Tables\Actions\CreateAction::make(), ]); } public static function getRelations(): array { return [ // ]; } public static function getPages(): array { return [ 'index' => Pages\ListCities::route('/'), 'create' => Pages\CreateCity::route('/create'), 'edit' => Pages\EditCity::route('/{record}/edit'), ]; } public static function canViewAny(): bool { return auth()->user()->can('cities::view'); } }