まず、モデル イベント と呼ばれるこのテクノロジーを見てみましょう。その基本的な概念は非常に単純です:
これは、作成されたユーザー イベントをクロージャー関数にバインドする簡単な例です。クロージャの $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; } });
明らかに、これは作成、更新、保存、復元、および削除されたイベントに対しては実行できません。イベントがすでに発生しているため、戻ることはできません。