首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有级联删除事务管理功能的Laravel Soft Delete

具有级联删除事务管理功能的Laravel Soft Delete
EN

Stack Overflow用户
提问于 2019-04-15 16:20:55
回答 1查看 238关注 0票数 0

场景:学生->家长,学生的子类

代码语言:javascript
复制
        Parent:   Student
代码语言:javascript
复制
        Child:        Marks                          Address
代码语言:javascript
复制
        Grand Child     Primary Address                            Secondary Address
代码语言:javascript
复制
   We are using the Cascade Soft-Delete for the above scenario with the code below : 

这里有多个删除发生,需要建议了解我们是否必须为级联删除添加事务管理。

代码语言:javascript
复制
 use Illuminate\Database\Eloquent\SoftDeletes;

 class Student extends Model
  {
   use SoftDeletes;

   protected static function boot()
   {
    parent::boot();

    static::deleting(function ($student) {
        foreach ([
            'address',
            'mark'
        ] as $relation) {
            foreach ($student->{$relation} as $item) {
                $item->delete();
            }
        }
    });
  }

 public function address()
   {
    return $this->hasMany(StudentAddress::class, 'student');
    }

  public function mark()
   {
    return $this->hasMany(Marks::class, 'mark_detail');
   }
 }
EN

回答 1

Stack Overflow用户

发布于 2019-04-15 19:19:55

对于在Laravel中添加事务,请检查以下代码

代码语言:javascript
复制
\DB::transaction(function () {
      Your queried goes here
});

代码语言:javascript
复制
DB::beginTransaction();
     Your queried goes here
DB::commit();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55685082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档