components([ TextInput::make('name')->required()->label(__('label.search_box.taxonomy.name'))->required(), TextInput::make('sort_index') ->default(0) ->label(__('label.priority')) ->helperText(__('label.priority_help')) , Select::make('mode') ->options(SearchBox::query()->pluck('name', 'id')->toArray()) ->label(__('label.search_box.taxonomy.mode')) ->helperText(__('label.search_box.taxonomy.mode_help')) , ]); } public static function table(Table $table): Table { return $table ->columns([ TextColumn::make('id'), TextColumn::make('search_box.name') ->label(__('label.search_box.label')) ->formatStateUsing(fn ($record) => $record->search_box->name ?? 'All') , TextColumn::make('name')->label(__('label.search_box.taxonomy.name'))->searchable(), TextColumn::make('sort_index')->label(__('label.search_box.taxonomy.sort_index'))->sortable(), ]) ->defaultSort('sort_index', 'desc') ->filters([ SelectFilter::make('mode') ->options(SearchBox::query()->pluck('name', 'id')->toArray()) ->label(__('label.search_box.taxonomy.mode')) ->query(function (Builder $query, array $data) { return $query->when($data['value'], function (Builder $query, $value) { return $query->where(function (Builder $query) use ($value) { return $query->where('mode', $value)->orWhere('mode', 0); }); }); }) , ]) ->recordActions([ EditAction::make(), DeleteAction::make(), ]) ->toolbarActions([ DeleteBulkAction::make(), ]); } public static function getRelations(): array { return [ // ]; } public static function getPages(): array { return [ 'index' => ListCodecs::route('/'), 'create' => CreateCodec::route('/create'), 'edit' => EditCodec::route('/{record}/edit'), ]; } }