久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長(zhǎng)資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      一起學(xué)習(xí)laravel中的事件以及觀察者吧!

      下面由laravel教程欄目給大家介紹laravel中的事件以及觀察者,希望對(duì)需要的朋友有所幫助!

      一:事件與監(jiān)聽器

      事件是一個(gè)比較廣泛的的名詞,他可以代表所做的一個(gè)動(dòng)作。和事件一起出現(xiàn)的就是監(jiān)聽器了,其作用是用來監(jiān)聽你所做的事情,用來對(duì)你的行為做后續(xù)處理。
      事件系統(tǒng)為應(yīng)用各個(gè)方面的解耦提供了非常棒的方法,因?yàn)閱蝹€(gè)事件可以擁有多個(gè)互不依賴的監(jiān)聽器。例如,你可能希望每次訂單發(fā)貨時(shí)向用戶發(fā)送一個(gè)通知。你可以編寫一個(gè)可以被監(jiān)聽的事件,而不是將訂單處理代碼通知代碼耦合在一起。

      事件:
      Laravel 框架想要?jiǎng)?chuàng)建事件可以通過以下命令來創(chuàng)建:

      php artisan make:event 事件名稱

      該文件會(huì)存放在 app/Events 目錄下面。

      監(jiān)聽器:

      創(chuàng)建監(jiān)聽器可以使用以下命令來創(chuàng)建:

      php artisan make:listener 監(jiān)聽器名稱

      注冊(cè):

      事件和監(jiān)聽器在創(chuàng)建完畢后,還需要將二者聯(lián)合起來。我們可以在 EventServiceProvider 服務(wù)提供者中進(jìn)行注冊(cè)。如下:

          protected $listen = [         事件名稱 => [             監(jiān)聽器名稱,          .         ],     ];

      分發(fā)

      event(new TestEvent());

      二:模型事件

      模型事件是專門針對(duì)模型而額外添加的功能。其給我們創(chuàng)建了對(duì)應(yīng)的事件與監(jiān)聽。在使用模型事件事,我們需要遵守模型給我們的規(guī)則:

      • retrieved: 獲取到模型實(shí)例后觸發(fā)
      • creating: 插入到數(shù)據(jù)庫(kù)前觸發(fā)
      • created: 插入到數(shù)據(jù)庫(kù)后觸發(fā)
      • updating: 更新到數(shù)據(jù)庫(kù)前觸發(fā)
      • updated: 更新到數(shù)據(jù)庫(kù)后觸發(fā)
      • saving: 保存到數(shù)據(jù)庫(kù)前觸發(fā)(插入/更新之前,無論插入還是更新都會(huì)觸發(fā))
      • saved: 保存到數(shù)據(jù)庫(kù)后觸發(fā)(插入/更新之后,無論插入還是更新都會(huì)觸發(fā))
      • deleting: 從數(shù)據(jù)庫(kù)刪除記錄前觸發(fā)
      • deleted: 從數(shù)據(jù)庫(kù)刪除記錄后觸發(fā)
      • restoring: 恢復(fù)軟刪除記錄前觸發(fā)
      • restored: 恢復(fù)軟刪除記錄后觸發(fā)

      需要在模型處綁定

      protected $dispatchesEvents = [         'saving' => AppEventsTestEvent::class, //        'updated' => AppEventsTestEvent::class, ];

      三:觀察者

      事件需要與監(jiān)聽器關(guān)聯(lián)來,當(dāng)監(jiān)聽器變多了我們還需進(jìn)行注冊(cè)實(shí)現(xiàn),這樣會(huì)比較麻煩,這時(shí)我們可以考慮使用觀察者。如果在一個(gè)模型上監(jiān)聽了多個(gè)事件,可以使用觀察者來將這些監(jiān)聽器組織到一個(gè)單獨(dú)的類中。

      觀察者使用:

      觀察者的創(chuàng)建可以使用以下命令來創(chuàng)建:

      php artisan make:observer

      如果想要直接跟模型關(guān)聯(lián)起來,還可以直接加入?yún)?shù)與模型關(guān)聯(lián):

      php artisan make:observer UserObserver --model=User

      觀察者注冊(cè):
      在服務(wù)提供者中注冊(cè)

      User::observe(UserObserver::class);

      或在模型中注冊(cè)

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

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)