Laravel Soft Delete с управлением транзакциями для каскадного удаления - PullRequest
0 голосов
/ 15 апреля 2019

Сценарий: Студент -> родитель, Детский класс для ученика
Родитель: ученик
Ребенок: Знаки Адрес
Grand Child Основной адрес Вторичный адрес

   We are using the Cascade Soft-Delete for the above scenario with the code below : 

Здесь происходит несколько удалений, нужны предложения, чтобы узнать, нужно ли нам добавлять управление транзакциями для каскадного удаления.

 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');
   }
 }

1 Ответ

0 голосов
/ 15 апреля 2019

Для добавления транзакции в Laravel проверьте следующий код

\DB::transaction(function () {
      Your queried goes here
});

Или

DB::beginTransaction();
     Your queried goes here
DB::commit();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...