ホームページ >バックエンド開発 >PHPチュートリアル >Laravel のイベントとオブザーバー (4)
私も同感です。モデル イベントは非常にクールですが、場合によっては、もう少し高度なものが必要になります。
Laravel を使用するときは、基本的にオブジェクト指向プログラミングを使用することになります。また、モデル イベント (モデル イベントの高度なバージョン) であるモデル イベントと同じことのいくつかを実行する必要がある場合があります。
これを使用するには、次のような新しいクラスを宣言するだけです (オブザーバーと呼ばれる専用フォルダーに配置できます):
class BookObserver { public function creating($book) { // I want to create the $book book, but first... } public function saving($book) { // I want to save the $book book, but first... } public function saved($book) { // I just saved the $book book, so.... } }
次に、EventServiceProvider クラスに登録します。 boot() メソッドでは次のようになります。
Book::observe(new BookObserver);
この原則の概念は以前と同じであり、新しいものは何もありません。オブザーバーを使用すると、前のモデル イベントで学習した個々の概念を使用することもできます。必要なメソッドを宣言し、イベント識別子を使用して特定のイベントをバインドするだけです。したがって、作成イベントは、creating() メソッドなどに関連します。
明らかに、creating() や updated() などのフロント メソッドでこの操作を終了できます。
class BookObserver { public function creating($book) { $somethingGoesWrong = true; if($somethingGoesWrong) { return false; } } }
それでは、いくつかのモデル オブザーバーの例を見てみましょう。