更改主键时,SoftDelete不起作用

时间:2019-03-06 05:28:21

标签: laravel

我将表中的主键从id更改为pr_id,并移动了。然后我把

“使用SoftDeletes;”在我的模型中,还有“ $ table-> softDeletes();”在迁移中,但是当我删除记录时,它不起作用。

我猜是因为我更改了主键。但我不知道它的解决方案。

2 个答案:

答案 0 :(得分:0)

我相信这是因为没有在模型中提及主键,并且您的模型仍然认为主键是id,但是您已对其进行了更改。因此,您只需将以下脚本添加到相关模型中,

class YourModelClass extends Model
{
     protected $primaryKey = 'pr_id';
}

这种方式的模型不会将主键视为id

答案 1 :(得分:0)

您需要在模型中定义主键来覆盖一些方法,例如getKeyForSaveQuery, setKeysForSaveQuery。对于软删除,您需要重写另一种方法runSoftDelete

参考链接