モデル event にバインドするイベント リスナーが必要ですupdating
。
たとえば、投稿が更新された後、更新された投稿のタイトルを通知するアラートがあります。通知を受け取るイベントリスナーを作成する方法 (投稿のタイトルの値がリスナーに渡されますか?
4 に答える
ドキュメントでは、 Model Eventsについて簡単に言及しています。それらはすべてモデルにヘルパー関数を持っているので、それらがどのように構築されているかを知る必要はありません。
Eloquent モデルはいくつかのイベントを発生させ、作成、作成、更新、更新、保存、保存、削除、削除のメソッドを使用して、モデルのライフサイクルのさまざまなポイントにフックできます。イベントの作成、更新、保存、または削除から false が返された場合、アクションはキャンセルされます。
Project::creating(function($project) { }); // *
Project::created(function($project) { });
Project::updating(function($project) { }); // *
Project::updated(function($project) { });
Project::saving(function($project) { }); // *
Project::saved(function($project) { });
Project::deleting(function($project) { }); // *
Project::deleted(function($project) { });
false
マークされた機能から戻る*
と、操作がキャンセルされます。
詳細については、Illuminate/Database/Eloquent/Modelを調べると、そこにあるすべてのイベントが見つかりstatic::registerModelEvent
ます$this->fireModelEvent
。
Eloquent モデルのイベントは次のように構造化されeloquent.{$event}: {$class}
、モデル インスタンスをパラメーターとして渡します。
Event:listen('user.created',function($user) のようなデフォルトのモデルイベントへのサブスクライブが機能すると想定していたため、これに行き詰まりました(コメントで述べたように)。これまでのところ、これらのオプションが機能するのを見てきましたデフォルトのモデルのユーザー作成イベントの例:
//This will work in general, but not in the start.php file
User::created(function($user)....
//this will work in the start.php file
Event::listen('eloquent.created: User', function($user)....
Event::listen('eloquent.created: ModelName', function(ModelName $model) {
//...
})