Sök…


Skapa en observatör

Observatörer används för att lyssna på återuppringningar av livscyklar av en viss modell i Laravel.
Dessa lyssnare kan lyssna på någon av följande åtgärder:

  • skapande
  • skapad
  • uppdaterande
  • uppdaterad
  • sparande
  • sparade
  • Tar bort
  • raderade
  • återställa
  • återställd

Här är ett exempel på en observatör.

UserObserver

<?php

namespace App\Observers;

/**
 * Observes the Users model
 */
class UserObserver 
{
    /**
     * Function will be triggerd when a user is updated
     *
     * @param Users $model
     */
     public function updated($model)
     {
         // execute your own code
     }
}

Som visas i användarobservatören lyssnar vi på den uppdaterade åtgärden, men innan denna klass faktiskt lyssnar på användarmodellen måste vi först registrera den i EventServiceProvider .

EventServiceProvider

<?php 

namespace App\Providers;

use Illuminate\Contracts\Events\Dispatcher as DispatcherContract;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;

use App\Models\Users;
use App\Observers\UserObserver;

/**
 * Event service provider class
 */
class EventServiceProvider extends ServiceProvider
{
    /**
     * Boot function
     *
     * @param DispatcherContract $events
     */
    public function boot(DispatcherContract $events)
    {
        parent::boot($events);

        // In this case we have a User model that we want to observe
        // We tell Laravel that the observer for the user model is the UserObserver
        Users::observe(new UserObserver());
    }
}

Nu när vi har registrerat vår observatör kommer den uppdaterade funktionen att ringas upp varje gång efter att användarmodellen har sparats.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow