Čítanie adries
use RoundlyConsulting\Addresses\Enums\AddressType;
use RoundlyConsulting\Addresses\Facades\Addresses;
$book = Addresses::for($payer);
$book->all(); // Collection<Address>, oldest first
$book->primary(); // primary across all types (or null)
$book->primary(AddressType::Office); // primary of a type
$book->ofType(AddressType::Shipping); // collection of a type
// Model trait shortcuts (they go through the same book):
$payer->addresses; // all addresses (relation)
$payer->getAddressOfType(AddressType::Home); // first of a type
$payer->getAddressOfType(AddressType::Home, onlyPrimary: true); // first primary of a type
$payer->getPrimaryAddressOfType(AddressType::Office); // the same, as a shorthand
$payer->primaryAddress(); // primary across all types
$payer->primaryAddress(AddressType::Office); // primary of a type
$payer->addressesOfType(AddressType::Shipping); // collection of a type
$payer->hasAddresses(); // bool| Metóda | Vracia | Poznámka |
|---|---|---|
addresses() | MorphMany | Vzťah; ->addresses vráti načítanú kolekciu. |
getAddressOfType($type, $onlyPrimary = false) | ?Address | Prvá adresa daného typu, od najstaršej; pri true len primárna. |
getPrimaryAddressOfType($type) | ?Address | Skratka pre getAddressOfType($type, onlyPrimary: true). |
primaryAddress(?$type = null) | ?Address | Primárna adresa daného typu, alebo prvá primárna adresa ľubovoľného typu. |
addressesOfType($type) | Eloquent Collection | Všetky adresy daného typu. |
hasAddresses() | bool | Či má vlastník aspoň jednu adresu. |
addressBook() | AddressBook | Adresár tohto modelu — ten istý objekt, ktorý vráti Addresses::for($model). |
Každé čítanie prechádza adresárom vlastníka a je zoradené od najstaršej adresy, takže getAddressOfType() vráti najstaršiu adresu daného typu. Každý argument typu prijme prípad AddressType alebo kľúč ('registered'), bez kontroly voči addresses.types. Ak môže mať vlastník viac adries jedného typu, primárnu načítajte cez primaryAddress($type) alebo všetky cez addressesOfType().
Eager loading
Každý pomocník spúšťa vlastný dopyt. Keď zobrazujete veľa vlastníkov naraz, načítajte vzťah vopred jedným dopytom a filtrujte už načítanú kolekciu:
// the helpers run a query on every call — for lists, eager-load the relation once
$customers = Customer::with('addresses')->get();
foreach ($customers as $customer) {
$customer->addresses->where('is_primary', true); // filtered in memory, no extra query
}Bez traitu
Adresár číta tie isté údaje pre akýkoľvek Eloquent model — Addresses::for($model)->all(), ->primary($type) a ->ofType($type), vždy od najstaršej adresy. Pozrite sekciu Fasáda Addresses.
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.