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

Štyri udalosti sú v RoundlyConsulting\Addresses\Events. Každá nesie jednu verejnú vlastnosť $address a používa Dispatchable a SerializesModels:

UdalosťOdošle sa, keď
AddressCreatedadresa vznikne cez balík — Addresses::for()->add(), save() v builderi, addAddress(), createAddress() alebo CreateAddressAction.
AddressUpdatedAddresses::update() — UpdateAddressAction — upraví adresu.
AddressDeletedsa zmaže inštancia modelu Address — mäkko aj cez forceDelete().
PrimaryAddressChangedsa adresa stane primárnou adresou svojho typu — setPrimary() či setPrimaryAddress(), pridanie s isPrimary: true alebo ->primary(), prípadne úprava s isPrimary: true. Odošle sa po AddressCreated / AddressUpdated, keď je povýšenie zapísané; nie, ak adresa primárna už bola.
use Illuminate\Support\Facades\Event;
use RoundlyConsulting\Addresses\Events\AddressCreated;
use RoundlyConsulting\Addresses\Events\PrimaryAddressChanged;

// e.g. in AppServiceProvider::boot()
Event::listen(function (AddressCreated $event): void {
    $address = $event->address;              // the new Address
    $owner = $event->address->addressable;   // its owner
});

Event::listen(function (PrimaryAddressChanged $event): void {
    // e.g. recalculate shipping for $event->address->addressable
});

Alebo použite samostatnú triedu listenera:

namespace App\Listeners;

use RoundlyConsulting\Addresses\Events\AddressUpdated;

final class RecalculateTaxOnAddressChange
{
    public function handle(AddressUpdated $event): void
    {
        $owner = $event->address->addressable;
        // recalculate tax for $owner
    }
}

Čo udalosti neodošle

  • Priame zápisy cez Eloquent — $customer->addresses()->create([...]), $address->update([...]) — ani factories neodošlú AddressCreated ani AddressUpdated.
  • Hromadné mazanie dopytom, napríklad $customer->addresses()->delete(), neodošle AddressDeleted.
  • Povýšenie alebo opätovné uloženie adresy, ktorá už primárna je, neodošle PrimaryAddressChanged — pozrite Primárne adresy.

Keďže udalosti používajú SerializesModels, listenery vo fronte dostanú Address znova načítanú z databázy.

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.