この記事では、laravel の学習ノートでモデルイベントの使用法に関する関連情報を中心に、サンプルコードを通じて詳細に紹介しています。必要な方は参考にしてください。以下のエディタで学習してみましょう。
まえがき
この記事では、laravel モデルのイベントの使用方法に関する関連コンテンツを主に紹介します。サンプルコードにはさまざまな使い方がありますが、ここでは詳しく説明しません。
使用例
1. シンプルで失礼 (ローカルテスト用)
ルーティングの定義:
Event::listen('eloquent.updated: App\Post',function (){ dump('测试一下修改事件'); }); Route::post('/post/{id}', 'PostController@update');
2. イベントとリスナーの生成
EventServiceProvider で対応するものを定義します。関係
protected $listen = [ 'App\Events\PostEvent' => [ 'App\Listeners\PostListener', ], ];
php artisan event:generate //生成文件
#event 操作対象のクラスを注入
listen 対応するイベント クラスをハンドル メソッドに挿入します
#
public function handle(PostEvent $event) { dump('测试一下修改事件'); }
#最後に「events」属性をポスト モデルに追加します
protected $events = [ 'updated' => PostListener::class ];
##関連するモデルで直接定義します
public static function boot() { parent::boot(); static::updated(function($model) { dump('测试一下修改事件'); }); }
4. 特性の定義
複数のモデルの更新または作成されたイベントに対して何らかの操作を実行する場合は、モデルごとに個別に実行する必要はありません。例: log.
trait LogRecord { //注意,必须以 boot 开头 public static function bootLogRecord() { foreach(static::getModelEvents() as $event) { static::$event(function ($model){ $model->setRemind(); }); } } public static function getModelEvents() { if(isset(static::$recordEvents)){ return static::$recordEvents; } return ['updated']; } public function setRemind() { dump('记录逻辑操作'); } }
## • 作成済み - オブジェクトはデータベースに書き込まれています
# • 更新 - オブジェクトは変更されましたが、データベースには書き込まれません
• 更新 - 変更はデータベースに書き込まれました
• 保存 -オブジェクトは作成または更新されましたが、データベースには書き込まれませんでした。
• 保存されました - 書き込まれたオブジェクト データベースを作成または更新しました 前
• 復元されました - 後ソフト削除の復元
上記がこの記事の全内容です。その他の関連コンテンツについては、PHP 中国語 Web サイトに注目してください。
Laravel 5 のモデルとコントローラーフレームワークとビューの基本プロセスの学習
以上がlaravelのモデルイベントのいくつかの使用法を学ぶの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。