首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >laravel 5:软删除

laravel 5:软删除
EN

Stack Overflow用户
提问于 2015-12-01 08:26:10
回答 3查看 1.1K关注 0票数 1

我在表中添加了deleted_at文件,默认值是0000-00-00 00:00:00(必须在mysql中使用),现在使用User::first()无法获得deleted_at = 0000-00-00 00:00:00时的值。知道吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-12-01 08:32:44

你是怎么加列的?

如果在迁移中使用Laravel Schema,那么就会有一个默认为nullsoftDeletes()列(当然,您也可以直接在数据库中这样做)。

票数 1
EN

Stack Overflow用户

发布于 2015-12-01 08:56:00

当您调用模型上的delete方法时,deleted_at列将被设置为current date and time。而且,当查询使用deletedmodel时,软模型将自动排除在所有查询结果中。

若要使代码工作,请将deleted_at字段设置为null

若要删除模型,可以使用下面的逻辑

代码语言:javascript
复制
$deletedRows = App\Flight::where('active', 0)->delete();

参考http://laravel.com/docs/5.1/eloquent#soft-deleting

票数 4
EN

Stack Overflow用户

发布于 2015-12-01 08:39:04

您只能获得deleted_at = NULL记录的值,否则无法检索行。如果您想获得所需的行,只需设置deleted_at = NULL

您应该像下面的代码一样使用softDelete,它将自动创建具有适当默认值的适当列。

代码语言:javascript
复制
Schema::table('table_name', function(Blueprint $table)
{
   $table->softDeletes();
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34015781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档