Laravel 4 拉雷维尔。无法使用其他特性软删除模型

Laravel 4 拉雷维尔。无法使用其他特性软删除模型,laravel-4,soft-delete,Laravel 4,Soft Delete,我正在实现一个应用程序,其中有些东西应该首先得到管理员的批准。因此,我在模型中添加了一列需要批准的内容 在整个应用程序中,普通用户应该只看到由管理员批准的模型,所以我在模型中添加了一个全局范围,以便只过滤由管理员批准的记录。我的问题是,软删除不能正常工作 当管理员决定不批准某项内容时,他应该能够将其删除。所以,我做了这样的事情: $model = Model::withUnapproved()->find($model_id); if(!$model){ //handle error

我正在实现一个应用程序,其中有些东西应该首先得到管理员的批准。因此,我在模型中添加了一列需要批准的内容

在整个应用程序中,普通用户应该只看到由管理员批准的模型,所以我在模型中添加了一个全局范围,以便只过滤由管理员批准的记录。我的问题是,软删除不能正常工作

当管理员决定不批准某项内容时,他应该能够将其删除。所以,我做了这样的事情:

$model = Model::withUnapproved()->find($model_id);
if(!$model){
   //handle error
}
$model->delete();
这段代码实际上找到了模型,但执行删除时,查询是:

DELETE FROM table WHERE deleted_at IS NULL and approved_by IS NOT NULL and model_id=`id`;
为什么要添加和批准人不为空??这会导致找到任何记录,因此不会删除任何内容

如果我将其更改为$model->withUnapproved->delete,则会删除所有记录

这上面有灯吗??提前谢谢

为什么要添加和批准人不为空??这会导致找到任何记录,因此不会删除任何内容


你的全球范围就是这样-全球的。它适用于该模型的所有有说服力的查询,包括删除。

我知道,但我检索到的模态没有范围。。。因此,当我试图删除它时,我希望范围被排除在外。但是当我在模型上调用delete时,它会再次添加作用域。@JavierEnríquez雄辩的performDeleteOnModel函数执行$this->newQuery,因此需要它。我也有同样的问题。你弄明白了吗?我无法删除我的模型,因为它应用了全局范围,然后该模型不存在:\我为它创建了一个问题--我目前只是在手动分配已删除的\u并使用softDeletes,直到有修复或干净的解决方法。我没有,我没有重写该特性以提供与软删除特性相同的功能。我没有考虑在github中打开一个问题。现在给+1。