---
title: "Konfigurácia — Forms for Laravel | Roundly"
description: "Každý konfiguračný kľúč a jeho predvolená hodnota — vymeniteľné modely, typ kľúča odosielateľa, resolvery, typy polí, súbory a schvaľovanie."
url: https://roundly-consulting.com/sk/open-source/navody/forms-for-laravel/konfiguracia
language: sk
---

[Všetky balíky](https://roundly-consulting.com/sk/open-source.md)

[Forms for Laravel](https://roundly-consulting.com/sk/open-source/navody/forms-for-laravel.md)

# Konfigurácia

Publikovaný config/forms.php umožňuje vymeniť modely balíka, zaregistrovať resolvery polí, mapovať typy polí na typy hodnôt a doladiť nahrávanie súborov a schvaľovanie. Celý súbor:

```php
return [
    // Override any model with your own subclass.
    'models' => [
        'form' => \RoundlyConsulting\Forms\Models\Form::class,
        'group' => \RoundlyConsulting\Forms\Models\Group::class,
        'field' => \RoundlyConsulting\Forms\Models\Field::class,
        'submission' => \RoundlyConsulting\Forms\Models\Submission::class,
        'form_submission' => \RoundlyConsulting\Forms\Models\FormSubmission::class,
    ],

    // Key type of the polymorphic sender columns: "bigint", "uuid" or "ulid" — anything else throws.
    'key_type' => env('FORMS_KEY_TYPE', 'bigint'),

    // Map a field `type` to the resolver that reads/writes its value.
    // `default` is used for any type without an explicit mapping. Each value must be
    // a class implementing Resolver; anything else throws.
    'fields' => [
        'default' => \RoundlyConsulting\Forms\Resolvers\DefaultResolver::class,
        'file' => \RoundlyConsulting\Forms\Resolvers\MediaFileResolver::class,
        'image' => \RoundlyConsulting\Forms\Resolvers\MediaFileResolver::class,
    ],

    // Map a field `type` to the attributes AttributeType used to cast stored
    // values and type-check submissions. Unlisted types (e.g. `time`) read back
    // exactly as stored. A value that isn't an AttributeType case throws.
    'field_types' => [
        'number' => 'integer',   // whole numbers; `decimal` / `float` map to 'float'
        'range' => 'integer',
        'float' => 'float',
        'decimal' => 'float',
        'checkbox' => 'boolean',
        'boolean' => 'boolean',
        'toggle' => 'boolean',
        'date' => 'datetime',
        'datetime' => 'datetime',
        'multiselect' => 'array',
        'checkboxes' => 'array',
        'tags' => 'array',
    ],

    // Media settings for file/image fields (backed by media-library-for-laravel).
    'media' => [
        'bucket' => 'attachment',
        'visibility' => 'private',
        'disk' => env('FORMS_MEDIA_DISK'),
        'private_disk' => env('FORMS_MEDIA_PRIVATE_DISK', 'local'),
        'accepted_mime_types' => null,
        'max_file_size' => null,
        'responsive_widths' => null,
        'temporary_url_lifetime' => null,
    ],

    // Submission review via approvals-for-laravel. Disabled by default.
    'approvals' => [
        'enabled' => env('FORMS_APPROVALS_ENABLED', false),
    ],

    // Forms defined declaratively and synced to the DB with `php artisan forms:sync`.
    'definitions' => [],
];
```

## Všetky kľúče

| Kľúč | Predvolené | Účel |
| --- | --- | --- |
| `models.form` | Models\\Form | Model formulárov (model balíka alebo jeho podtrieda; iná trieda vyhodí výnimku). |
| `models.group` | Models\\Group | Model skupín. |
| `models.field` | Models\\Field | Model polí. |
| `models.submission` | Models\\Submission | Model riadkov odpovede (jeden na pole). |
| `models.form_submission` | Models\\FormSubmission | Agregát, ktorý združuje riadky jednej odpovede (predmet schvaľovania). |
| `key_type` | bigint | Typ kľúča polymorfných stĺpcov odosielateľa: bigint, uuid alebo ulid (FORMS\_KEY\_TYPE); prázdna hodnota = nenastavené → bigint; iná hodnota vyhodí výnimku. |
| `fields.default` | DefaultResolver | Resolver pre každý typ poľa bez vlastného mapovania. Každý záznam fields.\* musí byť trieda Resolver; prázdny záznam sa považuje za nenamapovaný; čokoľvek iné vyhodí výnimku. |
| `fields.file / fields.image` | MediaFileResolver | Uloží nahratý súbor ako médium na riadku odpovede. |
| `field_types` | 12 mapovaní | Typ poľa → AttributeType pre typované čítanie a validáciu. Typ time zámerne nie je namapovaný a vráti sa presne tak, ako je uložený. Nenamapovaný typ — aj typ namapovaný na prázdnu hodnotu — sa číta ako reťazec; namapovaná hodnota, ktorá nie je AttributeType (integr), vyhodí výnimku. |
| `media.bucket` | attachment | Skupina médií, do ktorej riadok odpovede ukladá súbory (reťazec; prázdna hodnota = nenastavené → attachment). |
| `media.visibility` | private | private (podpísané streamovanie) alebo public; čokoľvek iné vyhodí výnimku. |
| `media.disk` | null | Disk pre všetky súbory (FORMS\_MEDIA\_DISK); null alebo prázdna hodnota = podľa viditeľnosti — súkromné → media.private\_disk, verejné → predvolený disk media library. |
| `media.private_disk` | local | Neverejný disk pre súkromné súbory a ich varianty, ak je media.disk null (FORMS\_MEDIA\_PRIVATE\_DISK). |
| `media.accepted_mime_types` | null | Obmedzenie povolených mime typov na zoznam neprázdnych reťazcov (null alebo \[\] = bez obmedzenia). |
| `media.max_file_size` | null | Maximálna veľkosť súboru v bajtoch, najmenej 1 (null = predvolené z médií). |
| `media.responsive_widths` | null | Responzívne šírky obrázkov, kladné celé čísla (null = predvolený rebrík médií). |
| `media.temporary_url_lifetime` | null | Platnosť podpísanej URL v minútach, najmenej 1 (null = predvolené z médií). |
| `approvals.enabled` | false | Posielať odpovede na schvaľovanie (FORMS\_APPROVALS\_ENABLED). Číta sa striktne: true/1/on/yes alebo false/0/off/no; čokoľvek iné vyhodí výnimku. |
| `definitions` | \[\] | Deklaratívne definície formulárov pre forms:sync (každá položka je pole). |

## Prostredie (env)

Tri nastavenia sú riadené cez env, takže najčastejšie zmeny nevyžadujú publikovanú konfiguráciu:

```bash
FORMS_KEY_TYPE=bigint
FORMS_MEDIA_PRIVATE_DISK=s3-private   # a non-public disk for private uploads
# FORMS_MEDIA_DISK=                   # leave unset to choose the disk by visibility
FORMS_APPROVALS_ENABLED=true
```

Hodnotu key\_type nastavte ešte pred migráciou: určuje typ polymorfných stĺpcov odosielateľa v tabuľkách submissions a form\_submissions a všetky modely, ktoré používate ako odosielateľov, musia mať rovnaký typ kľúča. Prázdna hodnota (FORMS\_KEY\_TYPE=) sa považuje za nenastavenú a ponechá bigint; akákoľvek iná hodnota ako bigint, uuid alebo ulid vyhodí InvalidConfigurationException.

## Striktné nastavenia

Kľúč bez hodnoty — chýba, je null alebo je prázdny ako riadok FORMS\_MEDIA\_DISK= v hostiteľskej aplikácii — použije svoju predvolenú hodnotu; voliteľný kľúč (media.disk, media.max\_file\_size, media.responsive\_widths, media.temporary\_url\_lifetime) zostane nenastavený a prázdny záznam fields.\* či field\_types.\* sa považuje za nenamapovaný. Každá nastavená hodnota musí sedieť, inak vyhodí RoundlyConsulting\\PackageToolkit\\Exceptions\\InvalidConfigurationException s názvom kľúča:

- Celé čísla prijímajú int alebo reťazec s celým číslom — každá hodnota z env je reťazec —, takže 10MB či 5.5 vyhodí výnimku, namiesto toho, aby sa ignorovala.
- Názov skupiny médií či disku, ktorý nie je reťazec, vyhodí výnimku, rovnako ako preklep v media.visibility — ten sa už nečíta ako private.
- Chybná položka zoznamu vyhodí výnimku — v accepted\_mime\_types, responsive\_widths alebo položka definitions, ktorá nie je pole.
- Každý záznam fields.\* musí byť trieda Resolver a každá hodnota field\_types prípad AttributeType.
- FORMS\_APPROVALS\_ENABLED prijíma true/1/on/yes alebo false/0/off/no; čokoľvek iné vyhodí výnimku.

php artisan about chybné nastavenie zobrazí ako INVALID, namiesto toho, aby zlyhal.

## 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](https://roundly-consulting.com/sk/podporte-nas.md)

Odoslaním daru súhlasíte s našimi [podmienkami prijímania darov](https://roundly-consulting.com/sk/podmienky-darov.md).

[Podporte našu open-source prácu (otvorí sa v novej karte)](https://donate.stripe.com/dRmeVe8FX5PF1Qd9pXcEw00) [Pridajte sa k nám na Patreone (otvorí sa v novej karte)](https://www.patreon.com/cw/roundly)

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

[Ponuka do 48 hodín](https://roundly-consulting.com/sk/kontakt.md) [Prezrieť všetky balíky](https://roundly-consulting.com/sk/open-source/navody/forms-for-laravel.md)
