【发布时间】:2016-03-05 02:28:11
【问题描述】:
我在表格中添加了deleted_at,默认值为0000-00-00 00:00:00(在mysql中是必须的),现在使用User::first()在deleted_at = 0000-00-00 00:00:00时无法获取值。有什么想法吗?
【问题讨论】:
标签: laravel laravel-4 laravel-5 eloquent
我在表格中添加了deleted_at,默认值为0000-00-00 00:00:00(在mysql中是必须的),现在使用User::first()在deleted_at = 0000-00-00 00:00:00时无法获取值。有什么想法吗?
【问题讨论】:
标签: laravel laravel-4 laravel-5 eloquent
你是如何添加列的?
如果您在迁移中使用 Laravel Schema,则有一个 softDeletes() 列,默认为 null(当然,您也可以直接在数据库中执行此操作)。
【讨论】:
您只能获取记录的值有deleted_at = NULL 否则无法检索行。如果您想获得所需的行,只需设置deleted_at = NULL
您应该像下面的代码一样使用 softDelete,它会自动创建具有适当默认值的适当列。
Schema::table('table_name', function(Blueprint $table)
{
$table->softDeletes();
});
【讨论】:
当您在模型上调用删除方法时,deleted_at 列将设置为current date and time。而且,当查询使用soft deletes 的model 时,软deleted 模型将自动从所有查询结果中排除。
使您的代码工作集deleted_at 字段为null。
要删除模型,您可以使用以下逻辑
$deletedRows = App\Flight::where('active', 0)->delete();
【讨论】: