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

Typované hodnoty polí

Každý typ poľa sa mapuje na AttributeType z balíka attributes (pozrite forms.field_types), takže uložené hodnoty sa namiesto surových reťazcov vracajú ako skutočné PHP typy a odoslané hodnoty sa pri validácii typovo kontrolujú:

Forms::submissions($form)->first()->values;
// ['age' => 42, 'subscribed' => true, 'born' => CarbonImmutable, 'tags' => ['a', 'b']]

// One per-field row (a `Submission`) reads its own value the same way:
$row = $form->fields->firstWhere('key', 'age')->submissions()->first();
$row->typedValue();                      // 42 (int); true (bool) for a `checkbox` row

Predvolené mapovania

Typy políAttributeTypeVráti sa ako
number, rangeintegerint
float, decimalfloatfloat
checkbox, boolean, togglebooleanbool
date, datetimedatetimeCarbonImmutable
multiselect, checkboxes, tagsarrayarray
time a ostatné typystringpresne tak, ako je uložená

Kontrola typov

Keď prejdú pravidlá Laravelu, každá viditeľná hodnota (okrem null) poľa s nereťazcovým typom sa overí voči tomuto typu. Nezhoda neprejde cez Forms::validate() (ani pri finalizácii) — vyhodí ValidationException pod cestou poľa ako každé iné pravidlo; desatinné číslo v poli number() je presne taký prípad. Nenamapované typy polí — vrátane time — si zachovajú voľné reťazcové správanie:

use Illuminate\Validation\ValidationException;

// 'age' => '3.5' posted to a number() field in the contact form's details group
try {
    Forms::validate($form, $request);
} catch (ValidationException $e) {
    $e->errors(); // ['contact.details.age' => ['The Age field must be a valid integer.']]
}

$field->attributeType(); // the AttributeType mapped from the field's type

Uložená hodnota, ktorú už nemožno previesť — dáta zapísané pred zmenou typu alebo priamo cez createSubmission() — sa vráti presne tak, ako je uložená, a čítač odpovedí nezlyhá.

Vlastné typy

Platné hodnoty AttributeType sú string, integer, float, boolean, array a datetime. Publikované pole field_types nahrádza predvolené, preto si ponechajte záznamy, ktoré stále potrebujete. number a range sú celé čísla — na desatinné použite pole decimal alebo float; pole time zámerne nie je namapované (validujte ho napr. pravidlom date_format:H:i):

// config/forms.php — keep the defaults and add your own field types
'field_types' => [
    'number' => 'integer',
    'checkbox' => 'boolean',
    // ...
    'rating' => 'integer',   // a custom field type, cast and checked as an int
],

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.