• 技术文章 >php框架 >Laravel

    laravel5.4中软删除是什么

    长期闲置长期闲置2022-06-01 16:09:46原创298

    在“Laravel5.4”中,软删除指的是将表记录的状态标记上删除状态,并不是真正的从数据库中删除了,这样在查询的时候就可以添加过滤;软删除能够在表中以“deleted_at”字段值进行标识,默认值为null。

    本文操作环境:Windows10系统、Laravel5.4版、Dell G3电脑。

    laravel5.4中软删除是什么

    软删除并不是真的从数据库中删除掉了, 而是在表中以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');
        }
    };

    【相关推荐:laravel视频教程

    以上就是laravel5.4中软删除是什么的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:Laravel
    上一篇:laravel5.2和5.4有什么区别 下一篇:laravel定时任务需要用cron吗
    20期PHP线上班

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• 为什么要在 Swoole 上运行 Laravel?• 实例详解laravel使用中间件记录用户请求日志• laravel cms有哪些• laravel函数有哪些• laravel路由文件在哪个目录里
    1/1

    PHP中文网