以前にイベント モデルを紹介しましたが、今度はモデル イベントの例を見てみましょう。
より古典的な例から始めます。新しいユーザーが登録すると、ウェルカムメールを送信したいと考えています。これは実際には非常に簡単です。 EventServiceProvider クラスを開いて、parent::boot() メソッドの後に次のコードを追加するだけです:
User::created(function($user){ Mail::send('emails.welcome', ['user' => $user], function($message) use ($user) { $message->to($user->email, $user->first_name . ' ' . $user->last_name)->subject('Welcome to My Awesome App, '.$user->first_name.'!'); }); });
これはとても簡単ですね。
resources/views の下の電子メール フォルダーに welcome.blade.php ビュー ファイルが既に存在していること、また電子メール送信の基本的な知識を習得していることを前提としています。 Laravel で。
以下はモデル イベントの別の例です。
そのようなクラスがあると仮定します。その機能は、作成者が新しいイベントをリリースしたときに、これをフォローしている人に通知する電子メールを送信することです。著者の場合、このクラスは NewBookNotifier と呼ばれ、電子メール通知を送信するメソッドは forAuthor($authorId) と呼ばれます。ここで、$authorId は著者の主キーです。次のように実行できます:
Book::created(function($book){ $newBookNotifier = new NewBookNotifier(); $newBookNotifier->forAuthor($book->author->id); });
完了!ここで重要なことは、非常にシンプルであるということです。もう 1 つの重要な点は、前述したように、モデル内のコードを変更する必要がないことです。さらに複雑な動作を追加することもできますが、モデル内のコードは変更しないでください。この利点は、モデルをテストするときにモデルが壊れないことです。
後でさらに複雑な状況を見ていきます。