亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

laravel中事件以及觀察者的示例分析

發布時間:2021-08-17 09:18:17 來源:億速云 閱讀:97 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關laravel中事件以及觀察者的示例分析的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

一:事件與監聽器

事件是一個比較廣泛的的名詞,他可以代表所做的一個動作。和事件一起出現的就是監聽器了,其作用是用來監聽你所做的事情,用來對你的行為做后續處理。
事件系統為應用各個方面的解耦提供了非常棒的方法,因為單個事件可以擁有多個互不依賴的監聽器。例如,你可能希望每次訂單發貨時向用戶發送一個通知。你可以編寫一個可以被監聽的事件,而不是將訂單處理代碼通知代碼耦合在一起。

事件:
Laravel 框架想要創建事件可以通過以下命令來創建:

php artisan make:event 事件名稱

該文件會存放在 app/Events 目錄下面。

監聽器:

創建監聽器可以使用以下命令來創建:

php artisan make:listener 監聽器名稱

注冊:

事件和監聽器在創建完畢后,還需要將二者聯合起來。我們可以在 EventServiceProvider 服務提供者中進行注冊。如下:

    protected $listen = [
        事件名稱 => [
            監聽器名稱,
         .
        ],
    ];

分發

event(new TestEvent());

二:模型事件

模型事件是專門針對模型而額外添加的功能。其給我們創建了對應的事件與監聽。在使用模型事件事,我們需要遵守模型給我們的規則:

  • retrieved:    獲取到模型實例后觸發

  • creating:     插入到數據庫前觸發

  • created:      插入到數據庫后觸發

  • updating: 更新到數據庫前觸發

  • updated:      更新到數據庫后觸發

  • saving:       保存到數據庫前觸發(插入/更新之前,無論插入還是更新都會觸發)

  • saved:        保存到數據庫后觸發(插入/更新之后,無論插入還是更新都會觸發)

  • deleting:     從數據庫刪除記錄前觸發

  • deleted:      從數據庫刪除記錄后觸發

  • restoring:    恢復軟刪除記錄前觸發

  • restored:     恢復軟刪除記錄后觸發

需要在模型處綁定

protected $dispatchesEvents = [
        'saving' => \App\Events\TestEvent::class,
//        'updated' => \App\Events\TestEvent::class,
];

三:觀察者

事件需要與監聽器關聯來,當監聽器變多了我們還需進行注冊實現,這樣會比較麻煩,這時我們可以考慮使用觀察者。如果在一個模型上監聽了多個事件,可以使用觀察者來將這些監聽器組織到一個單獨的類中。

觀察者使用:

觀察者的創建可以使用以下命令來創建:

php artisan make:observer

如果想要直接跟模型關聯起來,還可以直接加入參數與模型關聯:

php artisan make:observer UserObserver --model=User

觀察者注冊:
在服務提供者中注冊

User::observe(UserObserver::class);

或在模型中注冊

public static function booted()
{
     self::observe(UserObserver::class);
}

感謝各位的閱讀!關于“laravel中事件以及觀察者的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

寻乌县| 德令哈市| 边坝县| 融水| 娄底市| 邹平县| 庆安县| 庆城县| 肥乡县| 华容县| 海淀区| 达日县| 巴林右旗| 隆昌县| 迁安市| 乳山市| 潼关县| 依兰县| 胶南市| 通海县| 贵德县| 伊宁市| 阿拉尔市| 扎兰屯市| 临汾市| 平凉市| 民乐县| 宜昌市| 澄迈县| 梁平县| 漯河市| 霞浦县| 壶关县| 宝兴县| 德化县| 西青区| 汶川县| 博野县| 上林县| 甘德县| 抚顺县|