Štruktúrované adresy
Contact je Addressable, takže cez addresses-for-laravel drží adresár fakturačných, fyzických či korešpondenčných adries. Voľný reťazec value naďalej slúži ako záloha:
use RoundlyConsulting\Addresses\DataTransferObjects\AddressData;
use RoundlyConsulting\Addresses\Enums\AddressType;
$contact->addAddress(AddressData::make(
city: 'Bratislava', street: 'Hlavna 1', postalCode: '81101',
countryIso: 'SK', type: AddressType::Billing, isPrimary: true,
));
$contact->primaryAddress(); // the primary Address
$contact->addressesOfType(AddressType::Billing); // typed lookup
$contact->formattedAddress(); // one-line render, falls back to value- addresses(), addAddress(AddressData), primaryAddress(?AddressType), addressesOfType(AddressType), setPrimaryAddress(Address) — z traitu HasAddresses balíka addresses.
- formattedAddress() — jednoriadkové zobrazenie primárnej adresy alebo value kontaktu, ak žiadna nie je pripojená.
- Prípady AddressType: Default, Billing, Shipping, Home, Work, Office.
Kontakt a adresa naraz
// Build an address-type contact and its structured Address in one call:
Contacts::for($owner)
->structuredAddress([
'city' => 'Vienna', 'street' => 'Ring 3',
'postalCode' => '1010', 'countryIso' => 'AT',
'type' => AddressType::Billing,
])
->add();
// Or from the owner directly:
$owner->addStructuredAddress(AddressData::make(
city: 'Bratislava', street: 'Hlavna 1', postalCode: '81101', countryIso: 'SK',
), label: 'Main');structuredAddress() prijíma AddressData alebo pole (city, street, postalCode alebo postal_code, countryIso alebo country_iso, name, type, isPrimary). Chýbajúci alebo nerozpoznaný type ponechá na addresses.default_type vašej aplikácie, presne ako pri adrese vytvorenej cez balík addresses. Pri add() value kontaktu zrkadlí jednoriadkové zobrazenie adresy, aby existujúce čítania fungovali ďalej.
Štruktúrovanú adresu prijme len adresný kontakt — pri akomkoľvek inom sa vyhodí InvalidContactValue. Kódy krajín validuje balík addresses — neznáma krajina vyhodí jeho InvalidCountryException. Soft delete kontaktu presunie do koša aj jeho adresy, restore() ich vráti a forceDelete() ich odstráni natrvalo.
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 kryptomienOdoslaním daru súhlasíte s našimi podmienkami prijímania darov.
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.