Laravel Observer 觀察者
Laravel Observer 觀察者
laravel 提供模型觀察者的功能,讓我們可以監聽模型上的事件,當觸發特定事件時,可以做而外的處理
舉例說明:
假如在新增商家後,要透過google api
取得商家資訊,就可以透過Observer
方式處理
透過以下指令創建Observer
,預設會放在app/Observers/
資料夾底下
php artisan make:observer StoreObserver --model=Store |
創建完成後檔案如下
|
觀察者編輯
我們要在商家創建時進行處理,所以在created
函式裡進行處理
public function created(Store $store) |
註冊觀察者
再到App\Providers\EventServiceProvider
註冊Model Observers
可以在boot
方法中註冊
use App\Models\Store; |
也可以在$observers
屬性中列出
use App\Models\Store; |
Observers
各方法對應事件
方法 | 對應事件 |
---|---|
retrieved | 檢索模型後 |
creating | 在創建模型之前 |
created | 創建模型後 |
updating | 在模型更新之前 |
updated | 模型更新後 |
saving | 在保存模型之前 |
saved | 模型保存後 |
deleting | 在刪除模型之前 |
deleted | 刪除模型後 |
restoring | 在恢復軟刪除模型之前 |
restored | 軟刪除模型恢復後 |
Observers
觀察者 與event
事件 差別
Observers
基本上是只能在 Eloquent
模型處理預定義事件(創建記錄、更新記錄、刪除等)。
event
事件是通用的,不是預定義的,可以在任何地方使用,不僅是在模型中。
評論
ValineDisqus