Laravel 4 Cascading Soft Deletes

Существует ли модульный способ выполнения каскадных мягких удалений в L4?

Моя база данных уже предназначена для этого с жестким удалением, потому что все таблицы связаны с другим. Однако я использую мягкие удаления и действительно не хочу перегружать метод delete() в своих моделях – просто из-за ( A) количество моделей и (B) необходимо отредактировать метод delete() во всех моделях при изменении других моделей.

Любые указатели или подсказки будут оценены.

Solutions Collecting From Web of "Laravel 4 Cascading Soft Deletes"

У меня есть каскадные удаления, работающие с использованием событий модели , например, в модели продукта, которую я привязываю к удаленному событию, чтобы я мог мягко удалить все отношения:

  // Laravel's equivalent to calling the constructor on a model public static function boot() { // make the parent (Eloquent) boot method run parent::boot(); // cause a soft delete of a product to cascade to children so they are also soft deleted static::deleted(function($product) { $product->images()->delete(); $product->descriptions()->delete(); foreach($product->variants as $variant) { $variant->options()->delete(); $variant->delete(); } }); } 

Я знаю, что это возможно из моих моделей:

 public function delete() { ChildTable::where('parent_id', $this->id)->delete(); ChildTable2::where('parent_id', $this->id)->delete(); parent::delete(); } 

Но любое обновление моделей или структуры таблиц приведет к добавлению / редактированию этого файла, включая другие модели.