摘要:一簡單粗魯用于本地測試路由中定義測試一下修改事件二生成事件和監(jiān)聽器在定義對應關系生成文件中注入要操作的類中方法注入對應事件類測試一下修改事件最后在模型中添加屬性三利用框架的方法直接在相關中定義測試一下修改事件四定義如果想對多個模型的或事件進
路由中定義:
Event::listen("eloquent.updated: AppPost",function (){ dump("測試一下修改事件"); }); Route::post("/post/{id}", "PostController@update");二 、生成事件和監(jiān)聽器
在 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 但未寫入數(shù)據(jù)庫 ? created - 對象已經寫入數(shù)據(jù)庫 ? updating - 對象已經修改但未寫入數(shù)據(jù)庫 ? updated - 修改已經寫入數(shù)據(jù)庫 ? saving - 對象創(chuàng)建或者已更新但未寫入數(shù)據(jù)庫 ? saved - 對象創(chuàng)建或者更新已經寫入數(shù)據(jù)庫 ? deleting - 刪除前 ? deleted - 刪除后 ? restoring - 恢復軟刪除前 ? restored - 恢復軟刪除后
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://systransis.cn/yun/25633.html
摘要:過去一年時間寫了多篇文章來探討了我認為的框架最核心部分的設計思路代碼實現(xiàn)。為了大家閱讀方便,我把這些源碼學習的文章匯總到這里。數(shù)據(jù)庫算法和數(shù)據(jù)結構這些都是編程的內功,只有內功深厚了才能解決遇到的復雜問題。 過去一年時間寫了20多篇文章來探討了我認為的Larave框架最核心部分的設計思路、代碼實現(xiàn)。通過更新文章自己在軟件設計、文字表達方面都有所提高,在剛開始決定寫Laravel源碼分析地...
1. 預備知識 1.1 composer 基本用法 1.1.1 參考文章 composer 基本用法 1.1.2 要求掌握的知識點 composer 依賴管理 composer 自動加載(關鍵) 1.2 DIP、IOC、DI、IOC 容器 詳情文章 2. Laravel 運行機制剖析 2.1 場景 范例:http://laravel.com/test?name=chenxuelong 2.2 ...
摘要:道阻且長啊前端面試總結前端面試筆試面試騰訊一面瀏覽器工作原理瀏覽器的主要組件包括用戶界面包括地址欄后退前進按鈕書簽目錄瀏覽器引擎用來查詢及操作渲染引擎的接口渲染引擎渲染界面和是基于兩種渲染引擎構建的,使用自主研發(fā)的渲染引擎,和都使用網(wǎng)絡用來 道阻且長啊TAT(前端面試總結) 前端 面試 筆試 面試 騰訊一面 1.瀏覽器工作原理 瀏覽器的主要組件包括: 用戶界面- 包括地址欄、后退/前...
摘要:道阻且長啊前端面試總結前端面試筆試面試騰訊一面瀏覽器工作原理瀏覽器的主要組件包括用戶界面包括地址欄后退前進按鈕書簽目錄瀏覽器引擎用來查詢及操作渲染引擎的接口渲染引擎渲染界面和是基于兩種渲染引擎構建的,使用自主研發(fā)的渲染引擎,和都使用網(wǎng)絡用來 道阻且長啊TAT(前端面試總結) 前端 面試 筆試 面試 騰訊一面 1.瀏覽器工作原理 瀏覽器的主要組件包括: 用戶界面- 包括地址欄、后退/前...
閱讀 1275·2021-09-27 13:35
閱讀 2576·2021-09-06 15:12
閱讀 3392·2019-08-30 15:55
閱讀 2841·2019-08-30 15:43
閱讀 442·2019-08-29 16:42
閱讀 3454·2019-08-29 15:39
閱讀 3073·2019-08-29 12:28
閱讀 1251·2019-08-29 11:11