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 enumPrejavte 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.