ecolabor/filament-swiss-uid-search
Composer 安装命令:
composer require ecolabor/filament-swiss-uid-search
包简介
Filament v4 plugin for searching Swiss companies via the UID (Unternehmens-Identifikationsnummer) webservice
README 文档
README
Ein Filament v4 Plugin zur Suche nach Schweizer Unternehmen über den UID-Webservice (Unternehmens-Identifikationsnummer) des Bundesamts für Statistik.
Features
- 🔍 UID-Suchfeld mit automatischer Firmenabfrage und Live-Validierung
- 🏢 Firmensuche nach Name mit Filteroptionen (Kanton, Ort)
- 🔄 Automatisches Befüllen von Formularfeldern
- ✅ Live-Validierung der UID mit visuellem Feedback (✓/✗)
- 🎴 Company Card Komponente für schöne Firmendarstellung
- 🇨🇭 Schweizer Lokalisierung (de_CH, fr_CH, it_CH) + Fallbacks (de, fr, it, en)
- 🎨 Native Filament v4 Integration - passt sich automatisch an dein Theme an
- 🌓 Dark Mode Support
Installation
composer require ecolabor/filament-swiss-uid-search
Plugin registrieren
Fügen Sie das Plugin zu Ihrem Panel hinzu:
use Ecolabor\FilamentSwissUidSearch\FilamentSwissUidSearchPlugin; public function panel(Panel $panel): Panel { return $panel // ... ->plugin( FilamentSwissUidSearchPlugin::make() ->defaultLanguage('de') ->searchLimit(50) ); }
Verwendung
UID-Suchfeld
Das UidSearch-Feld ermöglicht die direkte Suche nach einer UID-Nummer mit Live-Validierung:
use Ecolabor\FilamentSwissUidSearch\Forms\Components\UidSearch; public static function form(Form $form): Form { return $form ->schema([ UidSearch::make('uid') ->label('UID-Nummer') ->showValidationIndicator() // Zeigt ✓ oder ✗ während der Eingabe ->mapName('company_name') ->mapStreet('street') ->mapZipCode('zip_code') ->mapCity('city') ->mapCanton('canton') ->mapLegalForm('legal_form'), TextInput::make('company_name') ->label('Firmenname'), TextInput::make('street') ->label('Strasse'), TextInput::make('zip_code') ->label('PLZ'), TextInput::make('city') ->label('Ort'), TextInput::make('canton') ->label('Kanton'), TextInput::make('legal_form') ->label('Rechtsform'), ]); }
Features des UidSearch-Feldes:
- 🇨🇭 Schweizer Flagge als Prefix
- ✅ Live-Validierung mit Prüfziffer-Check
- 🔍 Such-Button zum Abrufen der Firmendaten
- 🔄 Automatisches Befüllen der verknüpften Felder
Firmensuche nach Name
Das CompanySearch-Feld öffnet ein Modal zur Firmensuche:
use Ecolabor\FilamentSwissUidSearch\Forms\Components\CompanySearch; CompanySearch::make('company_search') ->label('Firma suchen') ->mapUid('uid') ->mapName('company_name') ->mapStreet('street') ->mapZipCode('zip_code') ->mapCity('city') ->searchLimit(100)
Search Action
Alternativ können Sie eine Action verwenden:
use Ecolabor\FilamentSwissUidSearch\Actions\SearchUidAction; public static function form(Form $form): Form { return $form ->schema([ // ... Ihre Felder ]) ->headerActions([ SearchUidAction::make() ->mapUid('uid') ->mapName('company_name') ->mapStreet('street') ->mapZipCode('zip_code') ->mapCity('city'), ]); }
Custom Callback
Sie können auch einen eigenen Callback definieren:
UidSearch::make('uid') ->onCompanySelected(function (UidEntity $entity, Set $set) { // Ihre eigene Logik hier $set('custom_field', $entity->vatNumber); // Log oder andere Aktionen logger()->info('Firma ausgewählt', ['uid' => $entity->uid]); })
Company Card Komponente
Die company-card Blade-Komponente ermöglicht eine schöne Darstellung von Unternehmensdaten:
<x-filament-swiss-uid-search::components.company-card :company="$company" :showVatNumber="true" :showLegalForm="true" :showAddress="true" :showStatus="true" :selectable="true" :selected="false" />
Props:
| Prop | Typ | Default | Beschreibung |
|---|---|---|---|
company |
UidEntity|array |
required | Das Unternehmensobjekt |
showVatNumber |
bool |
true |
MWST-Nummer anzeigen |
showLegalForm |
bool |
true |
Rechtsform anzeigen |
showAddress |
bool |
true |
Adresse anzeigen |
showStatus |
bool |
true |
Status-Badge anzeigen |
selectable |
bool |
false |
Klickbar machen |
selected |
bool |
false |
Als ausgewählt markieren |
In einer Livewire-Komponente:
@foreach($companies as $company) <x-filament-swiss-uid-search::components.company-card :company="$company" :selectable="true" wire:click="selectCompany('{{ $company->uid }}')" /> @endforeach
Alle Field Mappings
| Methode | Beschreibung |
|---|---|
mapUid($field) |
UID-Nummer (formatiert) |
mapName($field) |
Firmenname |
mapStreet($field) |
Strasse mit Hausnummer |
mapHouseNumber($field) |
Nur Hausnummer |
mapZipCode($field) |
Postleitzahl |
mapCity($field) |
Ort |
mapCanton($field) |
Kantonskürzel (z.B. "ZH") |
mapLegalForm($field) |
Rechtsform |
mapVatNumber($field) |
MWST-Nummer |
Plugin Konfiguration
FilamentSwissUidSearchPlugin::make() ->defaultLanguage('de') // API-Sprache ->searchLimit(50) // Max. Suchergebnisse ->showVatNumber(true) // MWST-Nr. anzeigen ->showLegalForm(true) // Rechtsform anzeigen ->showAddress(true) // Adresse anzeigen
Konfiguration
Veröffentlichen Sie die Konfigurationsdatei:
php artisan vendor:publish --tag=filament-swiss-uid-search-config
Übersetzungen / Lokalisierung
Das Plugin unterstützt sowohl Standard-Locales als auch Schweizer Regionen:
| Locale | Sprache | Hinweis |
|---|---|---|
de |
Deutsch | Standard |
de_CH |
Schweizerdeutsch | Schweizer Konventionen (ss statt ß) |
fr |
Französisch | Standard |
fr_CH |
Französisch (Schweiz) | IDE statt UID |
it |
Italienisch | Standard |
it_CH |
Italienisch (Schweiz) | IDI statt UID |
en |
Englisch | International |
Schweizer Terminologie
Die Schweizer Varianten verwenden die offiziellen Begriffe:
- 🇩🇪 UID = Unternehmens-Identifikationsnummer
- 🇫🇷 IDE = Identificateur des entreprises
- 🇮🇹 IDI = Numero d'identificazione delle imprese
Übersetzungen anpassen
Veröffentlichen Sie die Sprachdateien:
php artisan vendor:publish --tag=filament-swiss-uid-search-translations
Die Dateien werden nach resources/lang/vendor/filament-swiss-uid-search/ kopiert.
Styling & Theming
Das Plugin verwendet ausschliesslich Filament's native CSS-Klassen und Tailwind. Dadurch passt es sich automatisch an dein bestehendes Theme an:
- ✅ Primary Color - Buttons und Aktionen nutzen deine
primaryFarbe - ✅ Dark Mode - Vollständige Unterstützung für Light/Dark Mode
- ✅ Status Colors -
success,danger,warningfür Validierung - ✅ Keine Custom CSS - Kein Überschreiben deines Designs
Das Plugin erbt automatisch alle Theme-Anpassungen, die du in deinem AdminPanelProvider definiert hast.
Abhängigkeiten
Dieses Plugin benötigt das ecolabor/laravel-swiss-uid-search Laravel-Package:
composer require ecolabor/laravel-swiss-uid-search
Testing
composer test
Lizenz
MIT License. Siehe LICENSE für weitere Informationen.
Credits
- ecolabor GmbH
- Basierend auf dem UID-Webservice des Bundesamts für Statistik
ecolabor/filament-swiss-uid-search 适用场景与选型建议
ecolabor/filament-swiss-uid-search 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 0 次下载、GitHub Stars 达 0, 最近一次更新时间为 2026 年 01 月 04 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「search」 「laravel」 「identification」 「enterprise」 「company」 「UID」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 ecolabor/filament-swiss-uid-search 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 ecolabor/filament-swiss-uid-search 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 ecolabor/filament-swiss-uid-search 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
A Laravel package to retrieve data from Google Search Console
The tenancy/tenancy identification driver using environment variables
PHP Interface for Babel Street Text Analytics
Indexed Search Autocomplete - Extends the TYPO3 Core Extension Indexed_Search searchform with an autocomplete feature.
API client for validating Tax Identification Number.
Abstraction Layer to index and search entities
统计信息
- 总下载量: 0
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 23
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-01-04