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










