---
title: "Modely, scopy a mäkké mazanie — Forms for Laravel | Roundly"
description: "Dopytové scopy pre verejné, aktívne a expirované formuláre, obnoviteľné mäkké mazanie a výmena modelov za vlastné podtriedy."
url: https://roundly-consulting.com/sk/open-source/navody/forms-for-laravel/modely-a-scopy
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)

# Modely, scopy a mäkké mazanie

Form obsahuje dopytové scopy public(), active() (bez expirácie alebo ešte neexpirovaný), expired() a forKey($key). Group a Field ponúkajú ordered():

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

$openForms = Form::query()->public()->active()->get();

Form::query()->expired()->get();              // expires_at in the past
Form::query()->forKey('contact')->first();    // by key

$form->groups()->ordered()->get();            // Group::ordered() — by `order`
$group->fields()->ordered()->get();           // Field::ordered() — by `order`
```

Riadky Submission pridávajú scopy final() a draft(), FormSubmission pridáva pendingApproval().

## Mäkké mazanie

Všetky modely používajú soft deletes — zmazaný formulár zostane v databáze aj s riadkami a odpoveďami, obnovíte ho cez restore() a dopytujete cez withTrashed(). Mazanie sa nekaskáduje, takže mäkké zmazanie formulára ponechá jeho skupiny, polia aj odpovede a staršie odpovede zostanú čitateľné aj po mäkkom zmazaní poľa, skupiny či formulára, na ktoré odpovedali.

Mäkko zmazaný formulár, skupina či pole uvoľní svoj kľúč: nový formulár ho môže prevziať (nová skupina či pole v rámci toho istého formulára či skupiny tiež) a forms:sync / Forms::update() ho znova vytvoria. Obnovenie záznamu si kľúč vezme späť — a zlyhá na porušení unikátneho obmedzenia, kým kľúč drží živý záznam:

```php
$form->delete();   // soft delete — groups, fields and submissions stay intact, the key is freed

// A new form can take the freed key; forms:sync and Forms::update() re-create it.
// Restoring takes the key back — and fails while a live form holds it.
Form::withTrashed()->forKey('contact')->first()?->restore();

// Force-deleting a submission row also purges its attachment media.
$row->forceDelete();
```

## Výmena modelov

Ktorýkoľvek záznam forms.models nasmerujte na vlastnú triedu, ak potrebujete ďalšie stĺpce, vzťahy či scopy. Vlastný model musí byť modelom balíka alebo z neho dediť — akákoľvek iná trieda vyhodí InvalidConfigurationException s názvom kľúča namiesto toho, aby sa potichu použil model balíka:

```php
// config/forms.php
'models' => [
    'form' => \App\Models\Form::class,
    // ...
],

// app/Models/Form.php — must extend the package model
namespace App\Models;

class Form extends \RoundlyConsulting\Forms\Models\Form
{
    // extra columns, relations, scopes
}
```

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