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

Podmienené polia

Pole zobrazíte alebo vyžadujete len vtedy, keď sa iné pole toho istého formulára — v ľubovoľnej skupine — zhoduje s hodnotou. Podmienka sa uloží na pole a uplatní sa pri validácii — skryté pole sa preskočí (a čokoľvek pre neho request poslal, sa neuloží) a podmienene povinné pole sa vyžaduje len pri splnení podmienky:

Forms::define('signup', 'Sign up')
    ->group('step-1', 'Step 1', function (GroupBuilder $g): void {
        $g->field('country', 'Country');
        $g->field('age', 'Age')->number();
    })
    ->group('step-2', 'Step 2', function (GroupBuilder $g): void {
        $g->field('state', 'State')->requiredWhen('country', 'US');        // a field of step 1
        $g->field('guardian', 'Guardian')->visibleWhen('age', [16, 17], 'in');
        $g->field('zip', 'ZIP')->visibleWhen('step-1.country', 'US');      // named exactly
    })
    ->create();

requiredWhen() pridá pravidlo required a uloží podmienku; visibleWhen() uloží len podmienku. Obe prijímajú kľúč odkazovaného poľa, hodnotu a voliteľný operátor. Samotný kľúč sa hľadá najprv v skupine závislého poľa, potom v ostatných skupinách formulára (podľa poradia skupín) — neskorší krok tak môže závisieť od skoršieho. Ak majú dve skupiny pole s rovnakým kľúčom, pomenujte ho presne zápisom group_key.field_key.

Operátory

OperátorPodmienka platí, keď odkazovaná odpoveď…
=sa rovná hodnote (predvolené).
!=sa od hodnoty líši.
inje jednou z hodnôt v poli.
not_innie je žiadnou z hodnôt v poli.
filledje vyplnená (hodnota sa ignoruje).
emptyje prázdna (hodnota sa ignoruje).

Ako sa ukladá

Podmienky sú obyčajné dáta na poli, takže prežijú aj v konfiguračných definíciách a vo výstupe API. Pole môže mať viac podmienok — zobrazí sa len vtedy, keď platia všetky:

// visibleWhen('age', [16, 17], 'in') stores this on the field's `conditions` column:
[
    ['field' => 'age', 'operator' => 'in', 'value' => [16, 17]],
]

$field->isVisible($request->all()); // evaluates every stored condition

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.