---
title: "Štruktúra formulára — Forms for Laravel | Roundly"
description: "Formulár obsahuje zoradené skupiny (kroky), skupiny obsahujú polia. Vytvoríte ich ako bežné Eloquent modely a čítate bodkovú cestu poľa."
url: https://roundly-consulting.com/sk/open-source/navody/forms-for-laravel/struktura-formulara
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)

# Štruktúra formulára

Formulár má skupiny — kroky alebo sekcie — a každá skupina má polia. Každý záznam nesie kľúč, ktorý je medzi živými záznamami jedinečný v rámci rodiča (kľúče formulárov sú jedinečné globálne; mäkko zmazaný záznam svoj kľúč uvoľní). Štruktúru môžete vytvoriť priamo cez modely:

```php
use RoundlyConsulting\Forms\Models\Form;
use RoundlyConsulting\Forms\Models\Group;
use RoundlyConsulting\Forms\Models\Field;

$form = Form::create([
    'name' => 'My Form',
    'key' => 'my-form',
    'is_public' => true,        // optional, defaults to false
    'expires_at' => null,       // optional nullable datetime
]);

$group = Group::create([
    'form_id' => $form->getKey(),
    'name' => 'First Step',
    'key' => 'first-step',
    'order' => 0,
]);

$field = Field::create([
    'form_id' => $form->getKey(),
    'group_id' => $group->getKey(),
    'name' => 'Name',
    'key' => 'name',
    'help' => 'Enter your name',
    'type' => 'text',
    'validations' => ['required', 'string'],
    'options' => null,          // e.g. ['CZ' => 'Czechia', 'SK' => 'Slovakia']
    'autofill' => null,
    'order' => 0,
]);
```

## Cesta poľa a tvar requestu

Každé pole vystavuje bodkovú cestu path() zloženú z form.key, group.key a field.key (napr. my-form.first-step.name). Táto cesta je kľúč, z ktorého resolver číta request, preto sú HTML vstupy vnorené podľa formulára a skupiny:

```html
<form method="POST" action="{{ route('contact.store') }}">
    @csrf
    <input name="contact[details][name]">
    <input name="contact[details][email]" type="email">
    <textarea name="contact[message][body]"></textarea>
    <button type="submit">Send</button>
</form>
```

## Vzťahy a pomocné metódy

```php
$field->path();             // 'my-form.first-step.name' — the request key

$form->groups;               // HasMany<Group>
$form->fields;               // HasManyThrough<Field> (through groups)
$form->submissions;          // HasMany<Submission> — one row per field per submission
$group->fields;              // HasMany<Field>
$field->form;                // BelongsTo<Form>
$field->group;               // BelongsTo<Group>

$form->isExpired();              // expires_at has passed
$form->isAcceptingSubmissions(); // is_public and not expired
$field->isRequired();            // has a plain 'required' rule (required_if & co. don't count)
$field->hasOptions();            // options set and non-empty
$field->hasValidations();        // validations set and non-empty
$field->resolver();              // the Resolver mapped to the field's type
```

Stĺpce poľa options, validations, conditions a messages sa castujú na polia. Pri všetkom okrem jednorazových prípadov uprednostnite fluentný builder z nasledujúcej sekcie — celú štruktúru vytvorí v jednej transakcii a poradie pridelí sám.

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