我在表格中添加了deleted_at
,默认值为0000-00-00 00:00:00
(必须在mysql中),现在使用User::first()
无法在deleted_at = 0000-00-00 00:00:00
时获取值。任何想法?
答案 0 :(得分:4)
当您在模型上调用delete方法时,deleted_at
列将设置为current date and time
。并且,在查询使用model
的{{1}}时,会自动从所有查询结果中排除软soft deletes
模型。
要使代码正常工作,请将deleted
字段设置为deleted_at
。
要删除模型,您可以使用逻辑
null
答案 1 :(得分:1)
您是如何添加该列的?
如果您在迁移中使用Laravels Schema
,则会有一个softDeletes()
列,默认为null
(当然,您也可以直接在数据库中执行此操作)。
答案 2 :(得分:0)
您只能获取记录的值deleted_at
= NULL
,否则无法检索行。如果您想获得所需的行,只需设置deleted_at = NULL
您应该像下面的代码一样使用softDelete,它会自动创建具有正确默认值的正确列。
Schema::table('table_name', function(Blueprint $table)
{
$table->softDeletes();
});