Čí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. 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.