Laravel 软删除操作

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011323949/article/details/85158598

数据库删除操作如果不需要真正从数据库直接删除,这时候就会用到软删除

1.首先在模型中要use SoftDeletes ,该trait 为软删除提供一系列相关方法,此外还要设置$data 属性,将deleted_at置于其中

<?php

namespace App\Model\Backend;

use App\Http\Response;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
use Request;

class User extends Model
{
    use SoftDeletes;

    protected $table = 'users'; //表名
    protected $primaryKey = 'id'; //主键
    protected $datas = ['deleted_at'];

2.向数据库中相应数据表添加delete_at字段,执行下面命令生成迁移文件

php artisan make:migration add_deleted_at_to_users_table --table=users
php artisan migrate //执行迁移文件

3.在Model文件里面执行下面操作即可

<?php
namespace App\Model\Backend;

use App\Http\Response;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
use Request;

class User extends Model
{
    use SoftDeletes;

    protected $table = 'users'; //表名
    protected $primaryKey = 'id'; //主键
    protected $datas = ['deleted_at'];

        public static function delete() 
        {
            self::whereIn('id', $ids)->delete(); //删除用户
            withTrashed() 显示所有数据
            onlyTrashed() 显示删除数所
            restore()还原数据
        }

有必要的话,还可以建立BaseModel类,让其他Model类继承

猜你喜欢

转载自blog.csdn.net/u011323949/article/details/85158598