15

モデル event にバインドするイベント リスナーが必要ですupdating
たとえば、投稿が更新された後、更新された投稿のタイトルを通知するアラートがあります。通知を受け取るイベントリスナーを作成する方法 (投稿のタイトルの値がリスナーに渡されますか?

4

4 に答える 4

18

ドキュメントでは、 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}、モデル インスタンスをパラメーターとして渡します。

于 2013-05-26T10:57:41.190 に答える
7

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).... 
于 2014-04-21T19:24:48.280 に答える
0
Event::listen('eloquent.created: ModelName', function(ModelName $model)   {
    //...
})
于 2014-07-23T20:16:29.190 に答える