NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky
Forms for Laravel

Fasáda Forms

Odporúčaným vstupným bodom je RoundlyConsulting\Forms\Facades\Forms. Jej koreňom je RoundlyConsulting\Forms\FormsManager — tenký manažér, ktorý pri každom volaní získa z kontajnera jednu akciu. Vaše prepísania v kontajneri aj Forms::fake() sa preto uplatnia na každej ceste. Celé API na jednom mieste:

use RoundlyConsulting\Forms\Facades\Forms;
use RoundlyConsulting\Forms\GroupBuilder;

Forms::define('contact', 'Contact us')                   // FormBuilder, stored by create()
    ->group('details', 'Details', function (GroupBuilder $g): void {
        $g->field('email', 'Email')->email()->required();
    })
    ->create();

$form = Forms::find('contact');                          // groups + fields, ordered
Forms::update('contact')->name('Contact us')->save();    // diff and save a structural edit
Forms::sync();                                           // forms from config('forms.definitions')

$data   = Forms::validate($form, $request);              // or a ValidationException
$result = Forms::submit($form, $request, $user);         // SubmissionResult
$draft  = Forms::draft($form, $request, $user);          // a resumable draft
Forms::finalize($draft->uuid);                           // validate and promote it

Forms::submissions($form)->latest()->get();              // Collection<AssembledSubmission>
Forms::submission($result->uuid)->get();                 // one submission, by uuid or model
Forms::review($result->uuid)->requiring([$lead, $qa])->quorum(2)->open();

Forms::createSubmission($field, ['value' => 'Jane'], $user); // one raw field row

Všetky metódy

MetódaVraciaČo robí
find($key)FormFormulár so zoradenými skupinami a poliami.
define($key, $name)FormBuilderFluentne definovaný nový formulár; uloží ho ->create().
create(FormDefinitionData)FormFormulár z definície v jednej transakcii.
update($key)UpdateFormBuilderFluentná úprava štruktúry; ->save() porovná a uloží zmeny.
sync(?array $definitions = null)list<string>Vytvorí alebo aktualizuje formuláre z forms.definitions (alebo z odovzdaného zoznamu).
validate($form, $request)arrayZvalidované dáta, alebo ValidationException.
submit($form, $request, ?$sender, bypassClosed:)SubmissionResultFinálna odpoveď; spustí FormSubmitted.
draft($form, $request, ?$sender, ?$uuid, bypassClosed:)SubmissionResultNevalidovaný koncept, v ktorom možno pokračovať.
finalize($uuid, bypassClosed:)SubmissionResultZvaliduje koncept a povýši ho na finálnu odpoveď.
submissions($form)SubmissionQueryČítač, ktorý skladá jednu sadu odpovedí na každé odoslanie.
submission($uuid | FormSubmission)SubmissionHandleJedna odpoveď či koncept: uuid(), get(), model(), finalize(), review().
review($uuid | FormSubmission)PendingSubmissionReviewSchvaľovanie určenými schvaľovateľmi; spustí ho ->open().
createSubmission($field, $value, ?$sender, ?$uuid, bypassClosed:)SubmissionJeden surový riadok poľa (importy, seedy), zaradený pod odpoveď so svojím uuid.
fake()FormsFakeZapne zaznamenávajúci fake (pozrite Testovanie).

Buildery a handly

  • Forms::define($key, $name) → FormBuilder: public(), expiresAt(), group($key, $name, $callback), create() — pozrite Fluentný builder formulárov.
  • Forms::update($key) → UpdateFormBuilder: name(), public(), expiresAt(), group(), save() — pozrite Úprava formulárov.
  • Forms::submissions($form) → SubmissionQuery: forSender(), latest(), oldest(), withDrafts(), whereUuid(), pendingApproval(), approved(), rejected() a nakoniec get(), first() alebo count().
  • Forms::submission($uuid | $model) → SubmissionHandle: uuid(), get(), model(), finalize(), review(). Neznáme uuid vyhodí SubmissionNotFoundException.
  • Forms::review($uuid | $model) → PendingSubmissionReview: requiring(), rule(), unanimous(), any(), quorum(), weighted(), open().

Buildery aj handly volajú späť manažéra a rovnako aj trait HasForms — nech váš kód zvolí ktorúkoľvek cestu, prejde tým istým manažérom a zobrazí sa vo Forms::fake().

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 kryptomien

Odoslaní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.