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