수색…


새 등록 된 사용자에게 전자 메일을 보내는 이벤트 및 수신기 사용

Laravel의 이벤트를 통해 Observer 패턴을 구현할 수 있습니다. 이것은 응용 프로그램에 등록 할 때마다 사용자에게 환영 전자 메일을 보내는 데 사용할 수 있습니다.

새 이벤트 및 리스너는 이벤트 및 해당 리스너를 App\Providers\EventServiceProvider 클래스에 등록한 후 artisan 명령 줄 유틸리티를 사용하여 생성 할 수 있습니다.

protected $listen = [
    'App\Events\NewUserRegistered' => [
        'App\Listeners\SendWelcomeEmail',
    ],
];

대체 표기법 :

protected $listen = [
    \App\Events\NewUserRegistered::class => [
        \App\Listeners\SendWelcomeEmail::class,
    ],
];

이제 php artisan generate:event 실행합니다. 이 명령은 App\EventsApp\Listeners 디렉터리에서 위에서 언급 한 모든 해당 이벤트 및 수신기를 생성합니다.

우리는 하나의 이벤트에 여러 개의 리스너를 가질 수 있습니다.

protected $listen = [
    'Event' => [
        'Listner1', 'Listener2'
    ],
];

NewUserRegistered 는 새로 등록 된 User 모델의 래퍼 클래스입니다.

class NewUserRegistered extends Event
{
    use SerializesModels;

    public $user;

    /**
     * Create a new event instance.
     *
     * @return void
     */
    public function __construct(User $user)
    {
        $this->user = $user;
    }
}

EventSendWelcomeEmail 리스너에 의해 처리됩니다.

class SendWelcomeEmail
{
    /**
     * Handle the event.
     *
     * @param  NewUserRegistered  $event
     */
    public function handle(NewUserRegistered $event)
    {
        //send the welcome email to the user
        $user = $event->user;
        Mail::send('emails.welcome', ['user' => $user], function ($message) use ($user) {
                $message->from('[email protected]', 'John Doe');
                $message->subject('Welcome aboard '.$user->name.'!');
                $message->to($user->email);
        });
    }
}

마지막 단계는 새 사용자가 등록 할 때마다 이벤트를 호출 / 실행하는 것입니다. 이는 사용자 등록 로직을 구현할 때마다 컨트롤러, 명령 또는 서비스에서 수행 할 수 있습니다.

event(new NewUserRegistered($user));


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow