[Laravel 8.x] Model wasRecentlyCreated 判斷是否是 create
大家都知道 Laravel model 有一些預設的事件,如果我們觸發了 saved
事件,處理的過程中又想區分是新增還是編輯的時候就可以用 wasRecentlyCreated
屬性來判斷。
/** * The "booted" method of the model. * * @return void */ protected static function booted() { static::saved(function ($user) { if ($this->wasRecentlyCreated) { // 如果是新增要做的事 } else { // 如果是編輯要做的事 } }); }wasRecentlyCreated 不只在 saved 中可以使用,如果我們呼叫了 firstOrCreate 也可以用來判斷是否是新增的資料,例如:
$sampleModel = SampleModel::firstOrCreate($sampleData); if ($sampleModel->wasRecentlyCreated) { // 新增要做的事情 } else { // 查詢要做的事情 }沒想到 wasRecentlyCreated 這麼好用,簡直相見恨晚。
留言
張貼留言