zoukankan      html  css  js  c++  java
  • Laravel设置软删除及其恢复系列操作

    软删除及其相关实现

    • 在模型类中要使用SoftDeletestrait并设置$date属性数组
    <?php
    
    namespace AppModels;
    
    use IlluminateDatabaseEloquentModel;
    use IlluminateDatabaseEloquentSoftDeletes;
    
    class Student extends Model
    {
        use SoftDeletes;
    
        //设置表名
        public $table = 'students';
    
        //设置主键
        public $primaryKey = 'id';
    
        protected $dates = ['delete_at'];
    }
    
    • 数据迁移中软删除字段写法
    <?php
    
    use IlluminateDatabaseSchemaBlueprint;
    use IlluminateDatabaseMigrationsMigration;
    
    class AlterStudentsDeletedAt extends Migration
    {
        /**
         * Run the migrations.
         *
         * @return void
         */
        public function up()
        {
            Schema::table('students', function (Blueprint $table) {
                $table->timestamps();
                $table->softDeletes();
            });
        }
    }
    
    • 控制器中使用
    public function destroy(Student $student)
    {
        $student->delete();
        if (!$student->trashed()) {
            return redirect()->back()->with('danger', '学生信息删除失败,学生ID:'.$student->id);
        }
    
        return redirect()->route('students.index')->with('success', '学生信息删除成功,学生ID:'.$student->id);
    }
    
    • 查询结果包含软删除模型
    $students = Student::withTrashed()->get();
    dd($students->toArray());
    
    • 只要查看被软删除的模型
    $students = Student::onlyTrashed()->get();
    dd($students->toArray());
    
    • 软删除恢复
    $student = Student::find(6);
    $student->restore();
    
    • 恢复多个模型
    Student::withTrashed()->where('id','>',1)->restore();
    • 恢复所有模型
    Student::withTrashed()->restore();
    
    • 恢复关联查询模型
    $student = Student::find(6);
    $student->history()->restore();
    
    • 强制删除(丛数据库中删除)
    $student = Student::find(6);
    $student->forceDelete();
    

    链接:https://www.jianshu.com/p/a48fb2b6adfa


  • 相关阅读:
    条形码识别
    使用边缘检测,将图像旋转到水平位置
    pyzbar 安装
    关于跑别人代码中遇到的问题
    %matplotlib inline
    git 相关流程和报错解决
    原码、反码和补码
    opencv 图像resize
    前端跨域解决方案汇总
    vuecli3 引入构建版本的2种方式
  • 原文地址:https://www.cnblogs.com/lxwphp/p/10733408.html
Copyright © 2011-2022 走看看