Open source
Forms for Laravel
composer require roundly-consulting/forms-for-laravelPrehľad
Natívny engine formulárov pre Laravel. Viackrokové formuláre — formuláre, skupiny a polia — definujete ako dáta vo svojej databáze, vstup validujete podľa pravidiel jednotlivých polí a každú odpoveď uložíte spolu s jej odosielateľom. Formuláre vytvoríte fluentným builderom alebo ich synchronizujete z konfigurácie, koncepty uložíte a dokončíte neskôr, odpovede čítate typované, nahraté súbory ukladáte ako súkromné médiá a odpovede posielate na schválenie schvaľovateľom, ktorých určíte. Licencia MIT, postavené len na Laraveli a vlastných open-source balíkoch Roundly — bez externých poskytovateľov formulárov.
Čo získate
Formuláre ako dáta
Formuláre, skupiny (kroky) a polia sú uložené v databáze — formulár zmeníte bez nového kódu či nasadenia.
Fluentný builder a synchronizácia
Celý formulár definujete jedným transakčným volaním, upravíte ho porovnávacím updaterom alebo ho deklarujete v konfigurácii a spustíte forms:sync.
Podmienená validácia
Laravel pravidlá na úrovni poľa, vlastné chybové hlášky a polia, ktoré sa zobrazia alebo sú povinné len pri zhode inej odpovede.
Koncepty a uzavreté formuláre
Ukladajte rozpracované odpovede a pokračujte neskôr, finalizujte s plnou validáciou a odmietajte odoslanie do súkromných či expirovaných formulárov.
Typované odpovede a súbory
Odpovede sa vracajú ako int, bool, dátumy a polia; súborové polia ukladajú nahraté súbory ako súkromné médiá s podpísanými URL.
Schvaľovanie odpovedí
Celú odpoveď pošlite na schválenie určeným schvaľovateľom — jednomyseľne, ktorýmkoľvek, kvórom či váhovo — a stav sa premietne späť.
Fasáda, DI alebo akcie
Použite fasádu Forms, injektujte FormsManager alebo spúšťajte jednoúčelové akcie — Forms::fake() každé volanie zaznamená a zároveň vykoná.
Dokumentácia
Inštalácia
Inštalácia cez Composer, publikovanie a spustenie migrácií (aj pre závislé balíky) a voliteľne konfigurácia a preklady.
Konfigurácia
Každý konfiguračný kľúč a jeho predvolená hodnota — vymeniteľné modely, typ kľúča odosielateľa, resolvery, typy polí, súbory a schvaľovanie.
Fasáda Forms
Celé API na jednej fasáde — definícia, hľadanie, validácia, odoslanie, koncepty, čítanie a schvaľovanie formulárov, plus buildery a handly.
DI a akcie
Uprednostňujete explicitné závislosti? Injektujte FormsManager s rovnakým API alebo volajte jednoúčelové akcie za každou metódou fasády.
Štruktúra formulára
Formulár obsahuje zoradené skupiny (kroky), skupiny obsahujú polia. Vytvoríte ich ako bežné Eloquent modely a čítate bodkovú cestu poľa.
Fluentný builder formulárov
Celý formulár — skupiny aj polia — definujete jedným transakčným volaním Forms::define() s typovanými skratkami a vlastnými hláškami.
Podmienené polia
Pole zobrazíte alebo vyžadujete len vtedy, keď sa zhoduje iná odpoveď — skryté polia validácia automaticky preskočí.
Validácia a odosielanie
Nájdite formulár, zvalidujte vstup podľa pravidiel polí a uložte odpoveď pre každé pole pod jedným referenčným uuid.
Koncepty (uložiť a pokračovať)
Uložte rozpracovanú odpoveď bez validácie, pokračujte v nej podľa uuid a neskôr ju finalizujte s plnou validáciou.
Čítanie odpovedí
Načítajte odpovede ako typované sady podľa kľúčov polí — filtrované podľa odosielateľa, uuid či výsledku schvaľovania — alebo jednu podľa uuid.
Úprava formulárov
Porovnajte novú definíciu s uloženou štruktúrou a uložte len zmeny — udalosti sa spustia len pre zmenené záznamy.
Typované hodnoty polí
Každý typ poľa sa mapuje na typ hodnoty, takže odpovede sa vracajú ako int, bool, dátumy či polia a nezhody neprejdú validáciou.
Nahrávanie súborov
Polia file a image ukladajú súbory ako súkromné médiá na riadku odpovede — varianty obrázkov, ostatné súbory bez zmeny a podpísané URL.
Schvaľovanie odpovedí
Celú odpoveď pošlite na schválenie určeným schvaľovateľom — jednomyseľne, ktorýmkoľvek, kvórom či váhovo — a stav sa premietne späť.
Trait HasForms
Dajte modelu používateľa (či inému odosielateľovi) vzťah na odpovede a skratky submitTo() a draftTo().
Deklaratívne formuláre
Deklarujte formuláre v config/forms.php a idempotentne ich synchronizujte do databázy príkazom php artisan forms:sync.
Resolvery a predvyplnenie
Vlastným resolverom určíte, ako typ poľa číta request aj úložisko, a triedami Autofill polia predvyplníte.
API zdroje
Vykreslite formulár s jeho skupinami a poliami ako JSON pre SPA či mobilné frontendy pomocou pribalených JsonResource.
Udalosti
Reagujte na odoslania, zmeny štruktúry a výsledky schvaľovania — FormSubmitted, udalosti Form/Group/Field a udalosti schvaľovania.
Výnimky
Špecifické výnimky balíka, ktoré môžete zachytiť — všetky dedia z FormsException — s prekladateľnými hláškami.
Modely, scopy a mäkké mazanie
Dopytové scopy pre verejné, aktívne a expirované formuláre, obnoviteľné mäkké mazanie a výmena modelov za vlastné podtriedy.
Artisan príkazy
Synchronizujte formuláre z konfigurácie príkazom forms:sync a skontrolujte nastavenie balíka v php artisan about.
Testovanie
Aktivitu formulárov overíte cez Forms::fake() — zaznamenávajúci fake, ktorý operácie aj vykoná — plus pomocníky, Pest matchery a factories.
Požiadavky
PHP 8.4+ a Laravel 12 alebo 13; balíky enums, attributes, media library a approvals sa nainštalujú automaticky.
Prejavte lásku k open source
Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.
Ďalšie spôsoby podpory vrátane kryptomienOdoslaním daru súhlasíte s našimi podmienkami prijímania darov.
Chcete to zabudovať do svojho produktu?
Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.