---
title: "AddressData a CreateAddressAction — Addresses for Laravel | Roundly"
description: "Zápisy cez DTO AddressData — make(), predvolené hodnoty a záložný default_type — alebo createAddress() a CreateAddressAction na akomkoľvek modeli."
url: https://roundly-consulting.com/sk/open-source/navody/addresses-for-laravel/dto-a-akcie
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)

# AddressData a CreateAddressAction

Injektovanie manažéra a úplnú mapu fasáda → akcia nájdete v sekcii DI a akcie. Pri importoch, seederoch a službách zostavte AddressData a odovzdajte ho adresáru — alebo metóde addAddress() z traitu:

```php
use RoundlyConsulting\Addresses\DataTransferObjects\AddressData;
use RoundlyConsulting\Addresses\Enums\AddressType;

$payer->addAddress(AddressData::make(
    city: 'Bratislava',
    street: 'Somewhere 1',
    postalCode: '81101',
    countryIso: 'SK',
    type: AddressType::Office,
    isPrimary: true,
));
```

## AddressData

AddressData je finálny readonly value object. Používajte factory make() s pomenovanými argumentmi:

| Vlastnosť | Typ | Predvolené |
| --- | --- | --- |
| `city` | string | — |
| `street` | string | — |
| `postalCode` | string | — |
| `countryIso` | string | — |
| `name` | ?string | null |
| `type` | ?AddressType | null → config default\_type |
| `isPrimary` | bool | false |
| `meta` | ?Collection | null |

```php
use Illuminate\Support\Collection;
use RoundlyConsulting\Addresses\DataTransferObjects\AddressData;
use RoundlyConsulting\Addresses\Enums\AddressType;

$data = AddressData::make(
    city: '  Bratislava ',        // trimmed to 'Bratislava'
    street: 'Somewhere 1',
    postalCode: '81101',
    countryIso: ' sk ',           // normalised to 'SK'
    name: 'HQ',
    type: AddressType::Billing,
    isPrimary: true,
    meta: Collection::make(['floor' => 3]),
);

$data->toAttributes();
// ['type' => 'billing', 'is_primary' => true, 'name' => 'HQ', 'city' => 'Bratislava',
//  'street' => 'Somewhere 1', 'postal_code' => '81101', 'country_iso' => 'SK', 'meta' => Collection]
```

make() oreže mesto, ulicu, PSČ a názov (prázdny názov sa zmení na null) a pri zapnutom normalise\_country normalizuje krajinu. Priamy new AddressData(...) oboje preskočí — používajte make(), pokiaľ hodnoty nie sú už vyčistené. Ak typ vynecháte v make() aj v konštruktore, použije sa nakonfigurovaný default\_type. meta prijíma Collection alebo null; metóda meta() v builderi prijme akýkoľvek iterable a zabalí ho za vás.

## createAddress()

Skratka traitu s pomenovanými argumentmi zostaví AddressData cez make() a deleguje na addAddress(); bez type dostane adresa default\_type. Pozor, argument sa tu volá countryIsoCode, nie countryIso:

```php
use Illuminate\Support\Collection;
use RoundlyConsulting\Addresses\Enums\AddressType;

$address = $customer->createAddress(
    city: 'Bratislava',
    street: 'Somewhere 1',
    postalCode: '81101',
    countryIsoCode: 'sk',          // normalised to 'SK'
    name: 'HQ',
    isPrimary: true,
    type: AddressType::Billing,
    meta: Collection::make(['floor' => 3]),
);
```

## CreateAddressAction

Adresár, builder aj trait delegujú na CreateAddressAction. Získajte ju z kontajnera a vytvoríte adresu na ľubovoľnom Eloquent modeli, s traitom aj bez neho — akcia vloží záznam a pri isPrimary: true ho v tej istej transakcii povýši, potom odošle AddressCreated (a pri povýšení PrimaryAddressChanged):

```php
use RoundlyConsulting\Addresses\Actions\CreateAddressAction;
use RoundlyConsulting\Addresses\DataTransferObjects\AddressData;

// works on any Eloquent model — the HasAddresses trait is not required
$address = app(CreateAddressAction::class)->execute(
    $warehouse,
    AddressData::make(
        city: 'Bratislava',
        street: 'Somewhere 1',
        postalCode: '81101',
        countryIso: 'SK',
        isPrimary: true,
    ),
);
```

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