2017 © Pedro Peláez
 

utility laravel-cascade-soft-deletes

Cascading queued or regular deletes and restores for Eloquent models that implement soft deletes

image

exls/laravel-cascade-soft-deletes

Cascading queued or regular deletes and restores for Eloquent models that implement soft deletes

  • Wednesday, July 13, 2016
  • by exls
  • Repository
  • 1 Watchers
  • 0 Stars
  • 953 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 6 Versions
  • 0 % Grown

The README.md

Laravel CascadeSoftDeletes

Introduction

In scenarios when you delete a parent record you may want to also delete any detail/child associated with it as a form of self-maintenance of your data., (*1)

Normally, you would use your database's foreign key constraints, adding an ON DELETE CASCADE rule to the foreign key constraint in your detail/child table., (*2)

If you need to be able to restore a parent record after it was deleted, check you may reach for Laravel's soft deleting functionality., (*3)

But in this case you can use database feature to cascade delete details. This package support cascade soft deletes feature and support queues to make last one., (*4)

Installation

Pull this package in through Composer., (*5)

    composer require exls/laravel-soft-deletes

Laravel 5.* Integration

Add the service provider to your config/app.php file:, (*6)


'providers' => array( //register listeners on events Exls\LaravelCascadeSoftDeletes\Providers\CascadeSoftDeletesServiceProvider::class, ),

Usage

Change SoftDeletes trait in your models to CascadeSoftDeletes trait from this package, (*7)

<?php

namespace App\Models;

use App\Models\Master\Detail;
use Exls\LaravelCascadeSoftDeletes\Traits\CascadeSoftDeletes;
use Illuminate\Database\Eloquent\Model;

class Master extends Model
{
    //Instead of SoftDeletes
    use CascadeSoftDeletes;

    //Remove immideately details
    protected $cascadeDeletes = ['details'];

    // or use queues to soft delete details
    protected $queuedCascadeDeletes = ['details'];

    protected $dates = ['deleted_at'];

    public function details()
    {
        return $this->hasMany(Detail::class);
    }
}    

Now you can delete an App\Models\Master record, and any associated App\Models\Master\Detail records will be deleted. If the App\Models\Master\Detail record use the CascadeSoftDeletes trait as well, it's details/children will also be deleted and so on., (*8)

    App\Models\Master::findOrFail($masterId)->delete()

Tests

Contact

Anton Pavlov, (*9)

  • Email: anton.pavlov.it@gmail.com

The Versions

13/07 2016

dev-master

9999999-dev

Cascading queued or regular deletes and restores for Eloquent models that implement soft deletes

  Sources   Download

MIT

The Requires

 

The Development Requires

by Anton Pavlov

13/07 2016

v0.1.3

0.1.3.0

Cascading queued or regular deletes and restores for Eloquent models that implement soft deletes

  Sources   Download

MIT

The Requires

 

The Development Requires

by Anton Pavlov

13/07 2016

dev-develop

dev-develop

Cascading queued or regular deletes and restores for Eloquent models that implement soft deletes

  Sources   Download

MIT

The Requires

 

The Development Requires

by Anton Pavlov

05/06 2016

v0.1.2

0.1.2.0

Cascading queued or regular deletes and restores for Eloquent models that implement soft deletes

  Sources   Download

MIT

The Requires

 

The Development Requires

by Anton Pavlov

19/05 2016

v0.1.1

0.1.1.0

Cascading queued or regular deletes and restores for Eloquent models that implement soft deletes

  Sources   Download

MIT

The Requires

 

The Development Requires

by Anton Pavlov

19/05 2016

v0.1.0

0.1.0.0

Cascading queued or regular deletes and restores for Eloquent models that implement soft deletes

  Sources   Download

MIT

The Requires

 

The Development Requires

by Anton Pavlov