ホームページ >バックエンド開発 >PHPチュートリアル >Laravel のイベントとオブザーバー (3)

Laravel のイベントとオブザーバー (3)

WBOY
WBOYオリジナル
2016-06-20 12:30:481007ブラウズ

以前にイベント モデルを紹介しましたが、今度はモデル イベントの例を見てみましょう。

より古典的な例から始めます。新しいユーザーが登録すると、ウェルカムメールを送信したいと考えています。これは実際には非常に簡単です。 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 つの重要な点は、前述したように、モデル内のコードを変更する必要がないことです。さらに複雑な動作を追加することもできますが、モデル内のコードは変更しないでください。この利点は、モデルをテストするときにモデルが壊れないことです。

後でさらに複雑な状況を見ていきます。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。