Laravel 軟刪除操作

994914376發表於2018-04-12

資料庫資料刪除有些資料肯定不是真的從資料庫裡面直接刪除,這時候就會用到假刪除。

1、首先在模型中要使用SoftDeletestrait,該trait為軟刪除提供一系列相關方法,具體可參考原始碼Illuminate\Database\Eloquent\SoftDeletes ,此外還要設定$date屬性陣列,將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()還原資料
        }
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章