---
title: "Úprava a mazanie — Addresses for Laravel | Roundly"
description: "Upravujte cez Addresses::update() s úplným AddressData, adresy mäkko mažte a obnovujte a upracte ich, keď vlastník zanikne."
url: https://roundly-consulting.com/sk/open-source/navody/addresses-for-laravel/uprava-a-mazanie
language: sk
---

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

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

# Úprava a mazanie

## Úprava

Addresses::update() zapíše AddressData do existujúcej adresy v jednej transakcii, pri isPrimary true ju povýši, odošle AddressUpdated (pri povýšení potom aj PrimaryAddressChanged) a vráti znova načítaný model. Spúšťa UpdateAddressAction, ktorú môžete zavolať aj priamo:

```php
use RoundlyConsulting\Addresses\DataTransferObjects\AddressData;
use RoundlyConsulting\Addresses\Facades\Addresses;

$address = Addresses::update($address, AddressData::make(
    city: 'Bratislava',
    street: 'Somewhere 5',
    postalCode: '81102',
    countryIso: 'SK',
    // AddressData is a full write — carry over what should not change
    name: $address->name,
    type: $address->type,
    isPrimary: $address->is_primary,
    meta: $address->meta,
));
```

Úprava je úplný zápis: každé pole DTO nahradí uloženú hodnotu. Ak vynecháte name, type, isPrimary alebo meta, nastavia sa nanovo — name a meta na null, type na nakonfigurovaný default\_type a isPrimary na false, čím adresa stratí primárny príznak — preto preneste všetko, čo sa meniť nemá, ako v príklade vyššie. Ak chcete na primárnu povýšiť mäkko zmazanú adresu, vyhodí sa TrashedAddressException.

Zápis sa porovnáva s uloženým záznamom, znova načítaným pod zámkom, nie s kópiou, ktorú odovzdáte: aj zastaraná kópia tak zruší príznak primárnej adresy povýšenej inde, stĺpec zmenený medzitým prepíše hodnotou z DTO a o zmene typu rozhodne podľa uloženého typu. Stĺpce, ktoré DTO nenesie, si ponechajú uložené hodnoty — okrem tých, ktoré ste na kópii zmenili bez uloženia; tie sa zapíšu tiež.

Obyčajné $address->update(\[...\]) funguje tiež, ale obíde normalizáciu krajiny, pravidlo primárnej adresy aj udalosť AddressUpdated.

## Mazanie

Addresses::delete() adresu zmaže mäkko (soft delete), takže omylom zmazanú adresu viete obnoviť. AddressDeleted sa odošle z hooku deleted na modeli, ktorý beží pri delete() aj pri forceDelete():

```php
use RoundlyConsulting\Addresses\Address;
use RoundlyConsulting\Addresses\Facades\Addresses;

Addresses::delete($address);                   // soft delete; dispatches AddressDeleted
$address->restore();                           // bring it back (as primary only if the slot is free)
$address->forceDelete();                       // permanent removal (dispatches AddressDeleted too)

Address::onlyTrashed()->get();                 // what was removed
$customer->addresses()->withTrashed()->get();  // including removed ones
```

Po zmazaní primárnej adresy zostane jej typ bez primárnej, kým nepovýšite inú. Zmazaná adresa si príznak ponechá, takže restore() ju vráti ako primárnu — no len vtedy, ak miesto v skupine vlastník + typ nedrží iná živá primárna adresa, a vtedy odošle PrimaryAddressChanged; inak sa vráti ako bežná adresa (pozrite Primárne adresy).

## Keď sa zmaže vlastník

Polymorfný stĺpec nemá cudzí kľúč, takže zmazanie vlastníka jeho adresy ponechá. Zmažte ich po jednej, aby sa AddressDeleted odoslala pre každú — hromadné $customer->addresses()->delete() síce tiež maže mäkko, ale žiadne udalosti modelu neodošle:

```php
// addresses are not removed with their owner — there is no foreign key or cascade.
// delete them per model so AddressDeleted fires for each:
$customer->addresses->each->delete();
$customer->delete();
```

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