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

Koncepty (uložiť a pokračovať)

Rozpracovanú odpoveď uložte teraz a finalizujte neskôr. Koncepty validáciu preskakujú; finalizácia pred povýšením konceptu na finálnu odpoveď spustí plnú validáciu:

$draft = Forms::draft($form, request(), $user);   // returns SubmissionResult with a uuid
// ...later, resume by reusing the uuid (overwrites the prior draft values):
Forms::draft($form, request(), $user, uuid: $draft->uuid);
// finalize — validates, then marks the rows final and dispatches FormSubmitted:
Forms::finalize($draft->uuid);            // or Forms::submission($draft->uuid)->finalize()
  • draft() uloží aktuálnu hodnotu každého poľa so stavom draft a vráti SubmissionResult — jeho uuid si ponechajte na pokračovanie.
  • Pokračovanie s uuid: nahradí uložené hodnoty konceptu hodnotami z nového requestu — aj jeho nahraté súbory: staré sa zmažú.
  • finalize() poskladá vstup z uložených hodnôt, zvaliduje ho, označí riadky aj agregát ako finálne a spustí FormSubmitted. Nahraté súbory sa validujú ako pôvodné súbory, takže platia pravidlá file, mimes a max, a pole, ktoré podmienky teraz skrývajú, si hodnotu neponechá.
  • Pokračovať možno len v koncepte toho istého formulára od toho istého odosielateľa: uuid finalizovanej odpovede, koncept iného formulára, koncept iného odosielateľa (anonymný koncept zostáva anonymný) či neplatné uuid vyhodí DraftNotFoundException a uložená odpoveď zostane nedotknutá.
  • finalize() s neznámym uuid konceptu tiež vyhodí DraftNotFoundException; neúspešná validácia vyhodí výnimku ako obvykle a koncept zostane konceptom.
  • Ak sa ten istý koncept súbežne finalizuje dvakrát, povýši sa len raz: druhé volanie vyhodí DraftNotFoundException a nespustí nič.
  • Koncepty sa pri čítaní finálnych odpovedí predvolene vynechávajú.

Dopyty na riadky konceptov

use RoundlyConsulting\Forms\Enums\SubmissionStatus;
use RoundlyConsulting\Forms\Models\Submission;

Submission::query()->draft()->where('uuid', $uuid)->get(); // draft rows
Submission::query()->final()->count();                       // final rows (no status counts as final)

$row->isDraft();                            // bool
$row->status === SubmissionStatus::Draft;   // the per-row status enum

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.