OwlCyberSecurity - MANAGER
Edit File: CategoryAmazonResource.php
<?php namespace App\Filament\Resources; use App\Filament\Resources\CategoryAmazonResource\Pages; use App\Filament\Resources\CategoryAmazonResource\RelationManagers; use App\Models\CategoryAmazon; use Filament\Forms; use Filament\Forms\Components\Grid; use Filament\Forms\Components\Section; use Filament\Forms\Components\Select; use Filament\Forms\Components\TextInput; use Filament\Forms\Components\Toggle; use Filament\Forms\Form; use Filament\Resources\Resource; use Filament\Tables; use Filament\Tables\Columns\IconColumn; 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 CategoryAmazonResource extends Resource { protected static ?string $model = CategoryAmazon::class; protected static ?string $navigationIcon = 'heroicon-o-list-bullet'; protected static ?string $modelLabel = 'دسته بندی های آمازون'; protected static ?string $pluralModelLabel = 'دسته بندی آمازون'; protected static ?string $slug = 'category-amazon'; protected static ?string $navigationGroup = 'فروشگاه'; protected static ?int $navigationSort = 5; public static function form(Form $form): Form { return $form ->schema([ Section::make()->schema([ Grid::make(1)->schema([ TextInput::make('name_fa')->label('نام فارسی')->required(), TextInput::make('priority')->label('اولویت نمایش')->required()->numeric(), Toggle::make('is_show')->label('وضعیت نمایش')->required(), Toggle::make('is_banned')->label('دسته بندی ممنوعه')->required(), ]), ]), ]); } public static function table(Table $table): Table { return $table ->columns([ TextColumn::make('id')->label('آی دی ')->copyable(), TextColumn::make('name_fa')->label('نام فارسی'), TextColumn::make('priority')->label('اولویت نمایش')->copyable()->sortable(), TextColumn::make('slug')->label('اسلاگ')->copyable(), TextColumn::make('parent_id')->label('ریشه')->copyable(), IconColumn::make('is_show')->label('وضعیت نمایش در سایت')->boolean(), IconColumn::make('is_banned')->label('دسته بندی ممنوعه')->boolean()->toggleable(isToggledHiddenByDefault: true), ]) ->filters([ Filter::make('id')->form([ TextInput::make('id')->label('آی دی'), ])->query(fn(Builder $query, array $data): Builder => $query->when( $data['id'], fn(Builder $query, $data): Builder => $query->where('_id', $data) )), Filter::make('slug')->form([ TextInput::make('slug')->label('اسلاگ'), ])->query(fn(Builder $query, array $data): Builder => $query->when( $data['slug'], fn(Builder $query, $data): Builder => $query->where('slug', 'like', '%' . $data . '%') )), Filter::make('parent_id')->form([ TextInput::make('parent_id')->label('ریشه'), ])->query(fn(Builder $query, array $data): Builder => $query->when( $data['parent_id'], fn(Builder $query, $data): Builder => $query->where('parent_id', $data) )), SelectFilter::make('parentId')->label('ریشه اصلی')->form([ Select::make('parent')->label('ریشه اصلی')->options(['1' => 'ریشه اصلی', '2' => 'ریشه فرعی']), ])->query(fn(Builder $query, $data): Builder => $query->when( $data['parent'], function (Builder $query, $date) { if ($date == '1') return $query->where('parent_id', '=', 0); else return $query->where('parent_id', '!=', 0); }, )), SelectFilter::make('banned')->label(' دسته بندی ممنوعه')->form([ Select::make('is_banned')->label(' دسته بندی ممنوعه')->options(['1' => 'بله']), ])->query(fn(Builder $query, $data): Builder => $query->when( $data['is_banned'], function (Builder $query, $date) { if ($date == '1') return $query->where('is_banned', '=', true); }, )), SelectFilter::make('show')->label('وضعیت نمایش')->form([ Select::make('is_show')->label('وضعیت نمایش')->options(['1' => 'بله']), ])->query(fn(Builder $query, $data): Builder => $query->when( $data['is_show'], function (Builder $query, $date) { if ($date == '1') return $query->where('is_show', '=', true); }, )), ]) ->actions([ Tables\Actions\EditAction::make(), ]) ->bulkActions([ // Tables\Actions\BulkActionGroup::make([ // Tables\Actions\DeleteBulkAction::make(), // ]), ]); } public static function getRelations(): array { return [ // ]; } public static function getPages(): array { return [ 'index' => Pages\ListCategoryAmazons::route('/'), 'create' => Pages\CreateCategoryAmazon::route('/create'), 'edit' => Pages\EditCategoryAmazon::route('/{record}/edit'), ]; } public static function canViewAny(): bool { return auth()->user()->can('category-amazon::view'); } }