国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

laravel 模型事件幾種用法

KavenFan / 1206人閱讀

摘要:一簡單粗魯用于本地測試路由中定義測試一下修改事件二生成事件和監聽器在定義對應關系生成文件中注入要操作的類中方法注入對應事件類測試一下修改事件最后在模型中添加屬性三利用框架的方法直接在相關中定義測試一下修改事件四定義如果想對多個模型的或事件進


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

路由中定義:

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 - 恢復軟刪除后

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/25633.html

相關文章

  • Laravel核心解讀--完結篇

    摘要:過去一年時間寫了多篇文章來探討了我認為的框架最核心部分的設計思路代碼實現。為了大家閱讀方便,我把這些源碼學習的文章匯總到這里。數據庫算法和數據結構這些都是編程的內功,只有內功深厚了才能解決遇到的復雜問題。 過去一年時間寫了20多篇文章來探討了我認為的Larave框架最核心部分的設計思路、代碼實現。通過更新文章自己在軟件設計、文字表達方面都有所提高,在剛開始決定寫Laravel源碼分析地...

    laoLiueizo 評論0 收藏0
  • 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 ...

    zhaofeihao 評論0 收藏0
  • [面試專題]一線互聯網大廠面試總結

    摘要:道阻且長啊前端面試總結前端面試筆試面試騰訊一面瀏覽器工作原理瀏覽器的主要組件包括用戶界面包括地址欄后退前進按鈕書簽目錄瀏覽器引擎用來查詢及操作渲染引擎的接口渲染引擎渲染界面和是基于兩種渲染引擎構建的,使用自主研發的渲染引擎,和都使用網絡用來 道阻且長啊TAT(前端面試總結) 前端 面試 筆試 面試 騰訊一面 1.瀏覽器工作原理 瀏覽器的主要組件包括: 用戶界面- 包括地址欄、后退/前...

    lemanli 評論0 收藏0
  • [面試專題]一線互聯網大廠面試總結

    摘要:道阻且長啊前端面試總結前端面試筆試面試騰訊一面瀏覽器工作原理瀏覽器的主要組件包括用戶界面包括地址欄后退前進按鈕書簽目錄瀏覽器引擎用來查詢及操作渲染引擎的接口渲染引擎渲染界面和是基于兩種渲染引擎構建的,使用自主研發的渲染引擎,和都使用網絡用來 道阻且長啊TAT(前端面試總結) 前端 面試 筆試 面試 騰訊一面 1.瀏覽器工作原理 瀏覽器的主要組件包括: 用戶界面- 包括地址欄、后退/前...

    xfee 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<