NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky

type je enum s reťazcovými hodnotami, RoundlyConsulting\Addresses\Enums\AddressType. Stĺpec ukladá hodnotu enumu a model ju pri čítaní prevedie späť na enum:

PrípadHodnotalabel()
AddressType::DefaultdefaultDefault
AddressType::BillingbillingBilling
AddressType::ShippingshippingShipping
AddressType::HomehomeHome
AddressType::WorkworkWork
AddressType::OfficeofficeOffice
use RoundlyConsulting\Addresses\Enums\AddressType;

AddressType::Office->value;     // 'office'
AddressType::Office->label();   // 'Office'
AddressType::cases();           // all six cases
AddressType::from('billing');   // AddressType::Billing

Typy sú v celom verejnom API výhradne enumy — builder, AddressData, createAddress(), metódy na čítanie, scopy aj fasáda prijímajú AddressType. Obyčajný reťazec, napríklad 'office', je typová chyba, preto staršie volania s reťazcami prepíšte na zodpovedajúci prípad enumu.

Vstup z requestu

Validujte pravidlom enum z Laravelu, alebo nedôveryhodný reťazec preveďte sami a pri chybe vyhoďte typovanú výnimku balíka. Okrem nesprávne nastaveného default_type balík sám InvalidAddressTypeException nevyhadzuje — existuje práve pre takúto hranicu aplikácie:

use Illuminate\Validation\Rule;
use RoundlyConsulting\Addresses\Enums\AddressType;
use RoundlyConsulting\Addresses\Exceptions\InvalidAddressTypeException;

// validate with Laravel's enum rule…
$request->validate(['type' => ['required', Rule::enum(AddressType::class)]]);
$type = $request->enum('type', AddressType::class);

// …or convert an untrusted string yourself and fail with the package's typed exception
$type = AddressType::tryFrom($input)
    ?? throw InvalidAddressTypeException::for($input);

Možnosti pre výber

label() vracia pevný anglický popisok — praktický pre výber typu vo formulári:

use RoundlyConsulting\Addresses\Enums\AddressType;

$options = collect(AddressType::cases())
    ->mapWithKeys(fn (AddressType $type) => [$type->value => $type->label()])
    ->all();
// ['default' => 'Default', 'billing' => 'Billing', 'shipping' => 'Shipping', …]

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

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