前言
Eloquent 模型有以下生命週期,透過這些鉤子(hooks
)可以觸發自訂的 Event 事件:
- 當模型被查找時:
retrieved
- 當模型被新增時:
creating
、created
- 當模型被更新時:
updating
、updated
、saving
、saved
- 當模型被刪除時:
deleting
、deleted
- 當模型被回復時:
restoring
、restored
- 當模型被複製時:
replicating
服務提供者
首先,建立一個 ObserverServiceProvider
服務提供者。
1 | artisan make:provider ObserverServiceProvider |
修改服務提供者:
1 | namespace App\Providers; |
將服務提供者註冊到 config
資料夾的 app.php
中:
1 | return [ |
觀察者
建立一個 UserObserver
觀察者。
1 | php artisan make:observer UserObserver --model=User |
修改 UserObserver
觀察者:
1 | namespace App\Observers; |
觸發事件
使用 Tinker 介面進行測試。
1 | php artisan tinker |
新增模型。
1 | User::create(['email'=>'admin@email.com', 'name'=>'admin', 'password'=>'password']) |
查找模型。
1 | User::find(1) |
更新模型。
1 | User::find(1)->update(['name'=>'user']) |
刪除模型。
1 | User::find(1)->delete() |