我在表中添加了deleted_at文件,默认值是0000-00-00 00:00:00(必须在mysql中使用),现在使用User::first()无法获得deleted_at = 0000-00-00 00:00:00时的值。知道吗?
发布于 2015-12-01 08:32:44
你是怎么加列的?
如果在迁移中使用Laravel Schema,那么就会有一个默认为null的softDeletes()列(当然,您也可以直接在数据库中这样做)。
发布于 2015-12-01 08:56:00
当您调用模型上的delete方法时,deleted_at列将被设置为current date and time。而且,当查询使用deleted的model时,软模型将自动排除在所有查询结果中。
若要使代码工作,请将deleted_at字段设置为null。
若要删除模型,可以使用下面的逻辑
$deletedRows = App\Flight::where('active', 0)->delete();参考http://laravel.com/docs/5.1/eloquent#soft-deleting
发布于 2015-12-01 08:39:04
您只能获得deleted_at = NULL记录的值,否则无法检索行。如果您想获得所需的行,只需设置deleted_at = NULL
您应该像下面的代码一样使用softDelete,它将自动创建具有适当默认值的适当列。
Schema::table('table_name', function(Blueprint $table)
{
$table->softDeletes();
});https://stackoverflow.com/questions/34015781
复制相似问题