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

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

WBOY
リリース: 2016-06-23 13:08:51
オリジナル
1023 人が閲覧しました

まず、モデル イベント と呼ばれるこのテクノロジーを見てみましょう。その基本的な概念は非常に単純です:

  • EventServiceProvider では、特定のイベント リスナーを追加し、クロージャ関数をバインドできます
  • クロージャ関数では、モデル コードに触れずに新しい動作を追加できます
  • バインディング操作は、クラス
  • の boot() メソッド

これは、作成されたユーザー イベントをクロージャー関数にバインドする簡単な例です。クロージャの $user パラメータには、指定されたユーザーのインスタンスが含まれます:

public function boot(DispatcherContract $events)  {      parent::boot($events);      User::created(function($user)      {          // doing something here, after User creation...      });  }
ログイン後にコピー

ご想像のとおり、すべてのモデルにはこれらのメソッドがあるため、保存されたイベントに操作をバインドしたい場合は、次の手順を実行する必要があります:

User::saved(function($user)    {        // doing something here, after User save operation (both create and update)...    });
ログイン後にコピー

さらに、興味深い機能は、プリメソッドを介して現在の操作を停止できることです。実際、次のメソッドを使用できます:

  • 作成
  • 更新
  • 保存
  • 復元
  • 削除

操作を終了したい場合は、ブール値 false を返すことができます。

ユーザーの電子メール アドレスが @deniedprovider.com で終わると仮定すると、次のように作成操作を終了できます。

User::creating(function($user)    {      if(ends_with($user->email, '@deniedprovider.com'))      {        return false;      }    });
ログイン後にコピー

明らかに、これは作成、更新、保存、復元、および削除されたイベントに対しては実行できません。イベントがすでに発生しているため、戻ることはできません。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート