站長資訊網
        最全最豐富的資訊網站

        一起學習laravel中的事件以及觀察者吧!

        下面由laravel教程欄目給大家介紹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' => AppEventsTestEvent::class, //        'updated' => AppEventsTestEvent::class, ];

        三:觀察者

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

        觀察者使用:

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

        php artisan make:observer

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

        php artisan make:observer UserObserver --model=User

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

        User::observe(UserObserver::class);

        或在模型中注冊

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

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 热久久这里只有精品| 99国产精品私拍pans大尺度| 尤物国产在线精品福利一区| 久99精品视频在线观看婷亚洲片国产一区一级在线 | 国产suv精品一区二区33| 久久亚洲国产精品123区| 欧美精品香蕉在线观看网| 精品亚洲成a人片在线观看少妇| 青青青青久久精品国产h久久精品五福影院1421| 精品在线免费观看| 国产精品女同一区二区| 亚洲国产精品无码专区在线观看 | 亚洲乱码精品久久久久..| 国产精品日韩欧美久久综合| 国产99久久精品一区二区| 无码精品一区二区三区在线| 亚洲精品久久久www| 欧美日韩国产精品自在自线| 精品欧美一区二区三区久久久| 国产成人精品一区二区三区| 思思99热在线观看精品| 久久精品国产91久久综合麻豆自制 | 国产精品午夜免费观看网站| 51久久夜色精品国产| 国产精品视频久久| laowang在线精品视频| 国产成人精品日本亚洲网站| 国内揄拍高清国内精品对白| 精品永久久福利一区二区| 日韩精品一区二区三区中文| 伊人精品久久久久7777| 伊人久久精品影院| 亚洲精品人成无码中文毛片| 亚洲?V乱码久久精品蜜桃 | 99RE8这里有精品热视频| 久久r热这里有精品视频| 精品久久久久久中文字幕| 老司机国内精品久久久久| 久久国产乱子精品免费女| 99久久国产热无码精品免费久久久久| 亚洲欧洲国产精品你懂的|