久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

laravel學習筆記之模型事件的幾種用法示例

這篇文章主要給大家介紹了關于laravel學習筆記之模型事件用法的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用laravel具有一定的參考學習價值,需要的朋友可以參考

前言

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

用法示例

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

路由中定義:

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

二 、生成事件和監聽器

在 EventServiceProvider 定義對應關系

 protected $listen = [
  'App\Events\PostEvent' => [
    'App\Listeners\PostListener',
   ],
 ];
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 - 恢復軟刪除后

總結

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

【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。

相關文檔推薦

下面小編就為大家分享一篇laravel ORM 只開啟created_at的幾種方法總結,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
這篇文章主要給大家介紹了如何通過源碼解析Laravel的依賴注入的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著
這篇文章主要給大家介紹了關于Laravel中unique和exists驗證規則的優化的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面
最近在使用laravel5.5,利用其實現了一個功能,下面分享給大家,這篇文章主要給大家介紹了關于Laravel 5.5基于內置的Auth模塊如何實現前后臺登陸的相關資料,文中通過示例代碼介紹的非
laravel 的隊列服務對各種不同的后臺隊列服務提供了統一的 API,下面這篇文章通過源碼分析給大家介紹了關于 Laravel 重復執行同一個隊列任務的原因,文中通過示例代碼介紹的非常詳細
這篇文章主要給大家介紹了關于 Laravel Redis 多個進程同時取隊列問題的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或工作具有一定的參考學習價值,需要的朋友下面來
主站蜘蛛池模板: 久久国产一区二区 | 久久精品99久久 | 99久久免费精品国产免费高清 | 羞羞视频在线免费 | 亚洲成人a v | 伊人国产精品 | 国产精品18久久久久久久 | 亚洲一二三区免费 | 欧美精品久久久 | 亚洲国产精品一区在线观看 | 欧美11一13sex性hd | 国产免费播放视频 | 国产乱码一二三区精品 | 国产精品色一区二区三区 | 国产精品美女久久久久aⅴ国产馆 | 久久国产日本 | 国产农村一级片 | 中国一级大毛片 | 精品久久电影 | 国产视频一区二区 | 99自拍视频 | 91麻豆蜜桃一区二区三区 | 北条麻妃视频在线观看 | 欧美成人h版在线观看 | 亚洲国产精品一区二区久久 | 能看的av| 日韩精品在线视频免费观看 | 久久久不卡网国产精品一区 | 色男人的天堂 | h视频在线观看免费 | 日韩不卡一区二区三区 | 在线观看免费国产 | 国产亚洲精品精品国产亚洲综合 | 欧美日韩国产在线观看 | 亚洲激情在线观看 | 一区二区三区网站 | 亚洲精品一区在线 | 91精品国产91久久久久青草 | 97偷拍视频 | 成人免费在线观看 | 久久久久久久久国产 |