Laravel 筆記 – Soft Delete 可能的失效原因

做個快速筆記

當我們需要在 Laravel 內使用 soft delete 時,通常照文件說的三個步驟,做完就應該要可以用,步驟如下

1. Model 上方加入

use Illuminate\Database\Eloquent\SoftDeletes;

2. model class 內加入

use SoftDeletes;

3. class 內加入變數

protected $dates = ['deleted_at'];

正常來說,三個步驟搞定就應該要可以用,甚至根據實測 Laravel 5.5 環境下,第 3. 點沒做似乎也可以運作。

如果失效

不過這裡記錄一下注意事項,如果你的 Model 內,有自己另外加了 __construct(),那務必記得補上 parent::__construct(); ,如下範例

public function __construct()
{
   parent::__construct();
   ... 其他 Code ...
}

也就是你得讓 parent 那邊的建構式執行一下,否則 Soft delete 不會運作。

Leave a Reply

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料