我正在try 实现软删除的概念.

Here is my object:

class Post extends Eloquent {

    /**
     * The database table used by the model.
     *
     * @var string
     */
    protected $table = 'posts';
    protected $softDelete = true;

    ...

"软删除"处于启用状态.

现在,如果我"删除"一篇文章,它会得到一个"删除时间"时间戳:

description

问题是,当我搜索或仅使用all()来显示帖子时,软删除的项目就会出现在那里.怎么了?

推荐答案

soft deleting功能在使用Eloquent 时有效.如果你用query builder查询结果,你最终会看到所有的记录都被丢弃和没有被丢弃.

在当前的Laravel4文档中并不清楚,但是看到soft deleting的概念正好出现在Eloquent ORM - Soft Deleting之下,而不是Query Builder之下,我们只能假设:soft delete only works with Eloquent ORM.

Laravel相关问答推荐

Laravel模型嵌入嵌套模型时只附加属性

在postgres/mysqlс中,我可以定义基于json字段的唯一索引吗?

Livewire 3软件包开发

Laravel:通过数据透视表数据限制多对多Eager 加载

Laravel 连接表

Eloquent/Laravel:是否有 object->load('relation') 的对应物,例如.object->unload('relation')?

Laravel Blade - 产生内部部分

Carbon(laravel)处理无效日期

Laravel 5在blade中 echo 包含html的会话变量

Laravel Session 总是改变 Laravel 5.4 中的每个刷新/请求

在 Laravel 5 中扩展请求类

脚本 php artisan clear-compiled 处理 pre-update-cmd 事件返回错误(Laravel 4.1 升级)

如何在laravel 5.1中使用url(路由)传递多个参数

Laravel 字符串验证以允许空字符串

Laravel Queue,Beanstalkd vs Database,有什么区别?

Eloquent的 attach/detach/sync 触发任何事件?

在 Laravel 中判断会话超时

如何访问 Laravel 集合中的第 n 个项目?

如果参数不是整数,如何以不同方式定义路由

连接到 tcp://smtp.mail.yahoo.com:465 超时