---
title: "Odstraňovanie a synchronizácia — Attributes for Laravel | Roundly"
description: "Odstraňujte atribúty cez soft delete alebo natrvalo, ponechajte len vybrané a synchronizujte atribúty modelu na presnú množinu."
url: https://roundly-consulting.com/sk/open-source/navody/attributes-for-laravel/odstranovanie-a-synchronizacia
language: sk
---

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

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

# Odstraňovanie a synchronizácia

Odstránenie je predvolene soft delete; s forceDelete: true sa záznam vymaže natrvalo:

```php
use RoundlyConsulting\Attributes\Facades\Attributes;

Attributes::for($product)->forget('color');                           // soft delete; returns the count removed
Attributes::for($product)->forget(['color', 'size'], forceDelete: true); // permanently
Attributes::for($product)->forgetExcept(['color']);                   // list<string> of the removed names
```

Metódy na modeli sú skratky pre forget() a forgetExcept() cez ten istý manager:

```php
$product->syncAttributeMeta('color', collect(['is_pretty' => 'yes']));

$product->detachAttribute('color');
$product->detachAttribute('color', forceDelete: true);
$product->detachAttributes(['color', 'size']);
$product->destroyAttributesExcept(['color']);
$product->destroyAttributes(['price']);
```

## Synchronizácia

sync() zosúladí atribúty modelu presne s danou množinou — atribúty mimo nej sa odstránia a každá zadaná hodnota sa pripojí alebo aktualizuje:

```php
use RoundlyConsulting\Attributes\Facades\Attributes;

Attributes::for($product)->sync([
    'color' => 'black',
    'size'  => 'large',
]);                                                          // exactly color and size remain

Attributes::for($product)->sync(['color' => 'black'], forceDelete: true); // hard-delete the rest
Attributes::for($product)->sync(['color' => 'black'], meta: ['color' => ['hex' => '#000']]);
Attributes::for($product)->sync([]);                         // remove every attribute

$product->syncAttributes(['color' => 'black']);              // model shorthand
```

## Prehľad správania

- forget() — aj detachAttribute(), detachAttributes() a destroyAttributes() — odstráni uvedené atribúty a vráti ich počet; AttributeDetached sa spustí raz pre každý názov, ktorý bol naozaj pripojený (názov, ktorý pripojený nebol, nič nespraví), a pri zapnutej histórii sa zaznamená revízia detached.
- forgetExcept() — aj destroyAttributesExcept() — odstráni všetky atribúty mimo zoznamu na ponechanie rovnakou cestou, takže každé odstránenie spustí AttributeDetached a zaznamená revíziu detached. Vráti odstránené názvy.
- sync() — aj syncAttributes() — najprv overí každú zadanú hodnotu, až potom rovnako odstráni atribúty mimo množiny a pripojí každú hodnotu, všetko v jednej transakcii, a spustí AttributesSynced. Vráti pripojené modely Attribute.
- forgetExcept() alebo sync() s forceDelete natrvalo vymaže aj atribúty navyše, ktoré už boli soft-deleted.
- Soft-deleted hodnota uvoľní svoje miesto v jedinečnosti, takže ju môže prevziať iný vlastník. Obnovenie riadku cez $attribute->restore() si miesto znova vezme — alebo vyhodí DuplicateAttributeValueException a riadok nechá zmazaný, ak hodnotu medzitým drží iný vlastník.

Soft-deleted atribúty sa dajú obnoviť, kým ich natrvalo neodstráni attributes:prune (pozrite Artisan príkazy). Opätovné pripojenie názvu po soft delete obnoví jeho riadok s novou hodnotou aj metadátami — staré metadáta sa nevrátia.

## Zmazanie vlastníka

Trvalé zmazanie vlastníka — modelu bez SoftDeletes alebo cez forceDelete() — odstráni všetky jeho riadky atribútov vrátane soft-deleted a uvoľní jeho jedinečné hodnoty. Ide cez Attributes::for($owner)->forget() s forceDelete, takže AttributeDetached sa spustí raz pre každý pripojený názov, história zaznamená revízie detached a Attributes::fake() zaznamená forget. Zaznamenané revízie sa nikdy nemažú — zostávajú ako auditná stopa. Soft delete vlastníka jeho atribúty ponechá, takže po obnovení ich má späť. Ak chcete riadky pri každom zmazaní ponechať a upratovať sami, nastavte delete\_with\_owner (ATTRIBUTES\_DELETE\_WITH\_OWNER) na false.

## 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/attributes-for-laravel.md)
