laravelのモデルイベントのいくつかの使用法を学ぶ

不言
リリース: 2023-03-31 22:08:02
オリジナル
1538 人が閲覧しました

この記事では、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
 ];
ログイン後にコピー

3. フレームワークのブート メソッドを使用します

##関連するモデルで直接定義します


 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('记录逻辑操作');
 }
}
ログイン後にコピー

その後、モデル内で trait を使用するだけです。

## • 作成中 - オブジェクトは準備ができていますが、データベースに書き込まれていません


## • 作成済み - オブジェクトはデータベースに書き込まれています


# • 更新 - オブジェクトは変更されましたが、データベースには書き込まれません


• 更新 - 変更はデータベースに書き込まれました


• 保存 -オブジェクトは作成または更新されましたが、データベースには書き込まれませんでした。


• 保存されました - 書き込まれたオブジェクト データベースを作成または更新しました 前


• 復元されました - 後ソフト削除の復元

上記がこの記事の全内容です。その他の関連コンテンツについては、PHP 中国語 Web サイトに注目してください。

関連する推奨事項:


Laravel5 フレームワークでのビューへの配列の転送についての学習



Laravel 5 のモデルとコントローラーフレームワークとビューの基本プロセスの学習

#

以上がlaravelのモデルイベントのいくつかの使用法を学ぶの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート