成人精品一区二区三区中文字幕-成人精品一区二区三区-成人精品一级毛片-成人精品亚洲-日本在线视频一区二区-日本在线视频免费

導航首頁 ? 技術教程 ? laravel學習筆記之模型事件的幾種用法示例
全站頭部文字 我要出現在這里
laravel學習筆記之模型事件的幾種用法示例 690 2023-12-10   

前言

本文主要給大家介紹了關于laravel模型事件用法的相關內容,文中通過示例代碼介紹了laravel模型事件的多種用法,下面話不多說了,來一起看看詳細的介紹吧。

用法示例

一 、簡單粗魯(用于本地測試)

路由中定義:

Event::listen('eloquent.updated: AppPost',function (){
 dump('測試一下修改事件');
});
Route::post('/post/{id}', 'PostController@update');

二 、生成事件和監聽器

在 EventServiceProvider 定義對應關系

 protected $listen = [
  'AppEventsPostEvent' => [
    'AppListenersPostListener',
   ],
 ];
php artisan event:generate //生成文件

event 中注入要操作的類

listen 中handle 方法注入對應事件類

 public function handle(PostEvent $event)
 {
  dump('測試一下修改事件');
 }

最后在 post 模型中添加 'events' 屬性

 protected $events = [
   'updated' => PostListener::class
 ];

三 、利用框架的 boot 方法

直接在相關 Model 中定義

 public static function boot() {
  parent::boot();
  
  static::updated(function($model) {
   dump('測試一下修改事件');
  });
 }

四 、定義Trait

如果想對多個模型的updated 或 created 事件進行一些操作,該不會每個模型都單獨寫一個吧.例如: 日志 .

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('記錄邏輯操作');
 }
}

然后,在模型中use trait 就可以了.

• creating - 對象已經 ready 但未寫入數據庫

• created - 對象已經寫入數據庫

• updating - 對象已經修改但未寫入數據庫

• updated - 修改已經寫入數據庫

• saving - 對象創建或者已更新但未寫入數據庫

• saved - 對象創建或者更新已經寫入數據庫

• deleting - 刪除前

• deleted - 刪除后

• restoring - 恢復軟刪除前

• restored - 恢復軟刪除后

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對綠夏網的支持。



主站蜘蛛池模板: 算24点| 就爱小姐姐| 易烊千玺个人资料简介| k总直播间| 南海长城 电影| 电影青春期| 理发店电影| 女公安毛片免费观看| 母猫叫声播放mp3| gayvideos| 麻豆视频观看| 赵依芳| 四年级下册古诗三首| 红灯区1996| 1—42集分集剧情简介| 大小不良| 胎心监护多少周开始做| 日韩女同性恋| deaf dj课文翻译| 黄网站免费观看| 吴彦祖《偷窥无罪》| 夜半2点钟| 印度电影《希努》| 二年级竖式计算天天练| 公主们的战国| 新闻联播台词| 抗日电影免费| 胡渭康| 新有菜免费在线观看| 冥界警局| 杨欣悦| 蜡笔小新日语| 王瑞儿视频| 满宫春电影| 投名状在线观看| 闯关东| 哗鬼住正隔篱| 母亲电影完整版韩国| 少女灵异日记| 楼下的房客到底讲的什么| 简单的应急预案怎么写|

!!!站長長期在線接!!!

網站、小程序:定制開發/二次開發/仿制開發等

各種疑難雜癥解決/定制接口/定制采集等

站長微信:lxwl520520

站長QQ:1737366103