Všetky výnimky sú v RoundlyConsulting\Addresses\Exceptions a dedia od abstraktnej AddressesException (ktorá je RuntimeException), takže celú rodinu zachytíte jedným typom:
| Výnimka | Kto ju vyhodí | Správa |
|---|---|---|
IncompleteAddressException | PendingAddress::save(), keď chýba alebo je prázdne mesto, ulica, PSČ či krajina. | The address is missing required field(s): [street, country]. |
InvalidCountryException | AddressData::make() pri zapnutom normalise_country pre čokoľvek, čo nemá dve alebo tri písmená. | The value [XX1] is not a country code: expected two or three letters (ISO 3166-1 alpha-2 or alpha-3). |
AddressOwnershipException | Addresses::for($owner)->setPrimary() alebo setPrimaryAddress() s adresou, ktorá patrí inému modelu. | The given address does not belong to this model. |
TrashedAddressException | setPrimary() alebo setPrimaryAddress() s mäkko zmazanou adresou, prípadne Addresses::update(), ktoré chce mäkko zmazanú adresu povýšiť na primárnu. | A deleted address cannot be made primary; restore it first. |
InvalidAddressTypeException | Vytvorenie adresy bez typu, keď default_type nie je hodnotou AddressType — a váš kód, ktorý prevádza nedôveryhodné reťazce. | The address type [foo] is not a valid AddressType. |
AddressesException | Abstraktný základ všetkých vyššie uvedených; dedí od RuntimeException. | — |
InvalidConfigurationException | Výnimka package toolkitu, nie AddressesException — neznámy key_type pri spustení migrácie, nebooleovský normalise_country, country_resolver, ktorý nie je triedou CountryResolver, alebo model, ktorý nededí od Address. | Configuration value [addresses.country_resolver] must be a class-string of [RoundlyConsulting\Addresses\Contracts\CountryResolver], [App\Typo] given. |
use RoundlyConsulting\Addresses\Exceptions\AddressesException;
try {
$customer->newAddress()
->in($city)->at($street)->postalCode($postalCode)->country($country)
->save();
} catch (AddressesException $e) {
// IncompleteAddressException, InvalidCountryException, …
report($e);
}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.