Laravel中软删除是真的删除吗,怎么实现软删除
Admin 2022-06-14 群英技术资讯 893 次浏览
很多朋友都对“Laravel中软删除是真的删除吗,怎么实现软删除”的内容比较感兴趣,对此小编整理了相关的知识分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获,那么感兴趣的朋友就继续往下看吧!在“Laravel5.4”中,软删除指的是将表记录的状态标记上删除状态,并不是真正的从数据库中删除了,这样在查询的时候就可以添加过滤;软删除能够在表中以“deleted_at”字段值进行标识,默认值为null。

本文操作环境:Windows10系统、Laravel5.4版、Dell G3电脑。
软删除并不是真的从数据库中删除掉了, 而是在表中以deleted_at(这个字段的名称也是固定的)这个字段值标识的, 需要在设计表的时候呢添加这个字段 deleted_at, 默认值为null,
所谓软删除指的是数据表记录并未真的从数据库删除,而是将表记录的标识状态标记为软删除,这样在查询的时候就可以加以过滤,让对应表记录看上去是被”删除“了。Laravel中使用了一个日期字段作为标识状态,这个日期字段可以自定义,这里我们使用deleted_at,如果对应模型被软删除,则deleted_at字段的值为删除时间,否则该值为空。
软删除就是逻辑删除,数据保留单标记上删除状态,一般我们会用删除时间来作为标记,这样标记状态有了,删除时间也有了。
类型为 timestamp('deleted_at')
在模型中添加 use SoftDeletes
use Illuminate\Database\Eloquent\SoftDeletes;
class TestModel extends Model
{
use SoftDeletes;
protected $dates = ['deleted_at'];
}示例如下:
用Laravel 自带的 Eloquent ORM 来实现软删除。
首先在数据迁移文件中添加删除时间字段
./database/migrations/2014_10_12_000000_create_users_table.php
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
$table->softDeletes()->comment('删除时间');// 默认添加 deleted_at 字段
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('users');
}
};
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
文件上传是开发中常见的一个功能,下面这篇文章主要给大家介绍了关于PHP文件上传利用的常见函数,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
Twitter的snowflake在分布式生成唯一UUID应用还是蛮广泛的,基于snowflake的一些变种的算法网上也有不少。本文将利用雪花算法实现唯一ID的生成,需要的可以参考一下
本文实例讲述了PHP正则表达式函数preg_replace用法,有不少朋友对此感兴趣,下面小编给大家整理和分享了相关知识和资料,易于大家学习和理解,有需要的朋友可以借鉴参考
协程“协程”就是用户态的线程要理解是什么是“用户态的线程”,必然就要先理解什么是“内核态的线程”。内核态的线程是由操作系统来进行调度的,在切换线程上下文时,要先保存上一个线程的上下文,然后执行下一个线程,当条件满足时,切换回上一个线程,并恢复上下文。协程也是如此,只不过,用户态的线程不是由操作系统来调度的,而是由程序员来调度的,是在用户态的--摘自链接描述关于“用户态线程”,我们
注意:PHP5.5及以上版本才支持生成器。生成器提供了一种更容易的方法来实现简单的对象迭代,但没有实现一个具有 Iterator 接口的类所带来的性能开销和复杂性。生成器允...
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008