ユーザー操作イベントを日常的に扱う場合、時々必要になることがあります。後で参照したり、ビッグ データの統計情報を得るために、それらを記録します。
Laravel はモデルイベントでの処理に非常に便利です: https://laravel-china.org/docs/laravel/5.5/eloquent#events
Laravel のモデルイベントには 2 つの方法があります。新しいモデル
php 職人の作成:モデル ログ
1 2 3 4 5 6 7 8 |
|
php Artisan make:migration create_logs_table
- テーブルの構造は大まかに次のとおりです。必要に応じて設計できます
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
|
移行を実行します。テーブルを生成します
- php 職人移行
- すべてのモデル イベント オブザーバーを均一に登録する新しいサービス プロバイダーを作成します (後続の名前はより明確になります) )
php 職人 make:provider ObserverLogServiceProvider
- を
- /config/app の providers
登録(大まかに図のように)
Observers モデル オブザーバーを格納し、新しい基本クラス LogBaseServer
を作成し、コンストラクターで基本属性を構築します (CLI は、コマンド ライン)
-
##基本クラス
LogBaseServer (
モデル、メソッド 名前はドキュメント内のイベントに対応する必要があります)
-
##新しいサービス プロバイダーObserverLogServiceProvider実行中
- # 必要なモデルのイベントを登録します (Iかなりの数があります。おそらく将来はこのようになるでしょう)
- attach
- メソッドなど) はトリガーされません
1.
EventServiceProvider
属性はイベントにバインドされます
PermissionRoleEvent パラメーターに 2 つ注入します。1 つはロール、もう 1 つは
attach または
detach# によって返される配列です。
3. イベント リスナー PermissionRoleEventLog
も基本クラス LogBaseServer
を継承しており、ここでは受信配列 ID に従って走査され、ログ
# が作成されます。
を適用します。
- Update ログイン イベントとログアウト イベントを適切に処理する
- #1.
の subscribe
属性を適切に処理されるクラス ## にバインドします。
##2. イベント リスニング クラスのメソッド
# #3. 効果後は次のようになります: