2017 © Pedro Peláez
 

library eloquent-cascade

Cascading delete trait for Laravel's Eloquent

image

fish/eloquent-cascade

Cascading delete trait for Laravel's Eloquent

  • Thursday, August 11, 2016
  • by matfish2
  • Repository
  • 1 Watchers
  • 3 Stars
  • 136 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 1 Forks
  • 0 Open issues
  • 5 Versions
  • 0 % Grown

The README.md

Laravel Eloquent Cascading Delete

Latest Stable Version Total Downloads Latest Unstable Version License Build Status, (*1)

This package offers a simple trait that leverages the Eloquent delete event to recursively delete all specified relations for a given model., (*2)

Installation

Begin by installing this package through Composer. Edit your project's composer.json file to require fish/eloquent-cascade., (*3)

"require": {
  "fish/eloquent-cascade": "^1.0"
}

Next, update Composer from the Terminal:, (*4)

composer update

Usage

  1. Include the trait in a parent model and make the other models extend it:, (*5)

    namespace App;
    
    use Illuminate\Database\Eloquent\Model;
    use Fish\Cascade\Cascade;
    
    class BaseModel extends Model
    {
        use Cascade;
    }
  2. Add the relations you wish to delete to a protected $cascade array on the model. e.g:, (*6)

    class User extends BaseModel
    {
    
        protected $cascade = ['author'];
    
        public function author() {
    
          return $this->hasOne(Author::class);
    
        }
    }
    
    class Author extends BaseModel
    {
    
        protected $cascade = ['posts'];
    
        public function user() {
    
          return $this->belongsTo(User::class);
    
        }
    
        public function posts() {
    
          return $this->hasMany(Post::class);
    
        }
    
    }
    
    class Post extends BaseModel
    {
    
      protected $cascade = ['comments'];
    
      public function comments() {
    
        return $this->hasMany(Comment::class);
    
      }
    
    }

If you are using a trait for polymorphic relations and want to add this relation to the $cascade array, override the protected getCascade method. Suppose you have a Locale trait:, (*7)

   trait Locale {

    public function locale() {
        return $this->morphMany(Locale::class, 'translatable');
    }

    protected function getCascade() {
      return array_merge($this->cascade, ['locale']);
    }

   }

The Versions

11/08 2016

dev-master

9999999-dev

Cascading delete trait for Laravel's Eloquent

  Sources   Download

MIT

The Requires

 

The Development Requires

by Matanya Fishaimer

laravel eloquent delete relations cascade

11/08 2016

1.3

1.3.0.0

Cascading delete trait for Laravel's Eloquent

  Sources   Download

MIT

The Requires

 

The Development Requires

by Matanya Fishaimer

laravel eloquent delete relations cascade

19/02 2016

1.1

1.1.0.0

Cascading delete trait for Laravel's Eloquent

  Sources   Download

MIT

The Requires

 

The Development Requires

by Matanya Fishaimer

laravel eloquent delete relations cascade

19/02 2016

1.2

1.2.0.0

Cascading delete trait for Laravel's Eloquent

  Sources   Download

MIT

The Requires

 

The Development Requires

by Matanya Fishaimer

laravel eloquent delete relations cascade

31/01 2016

1.0

1.0.0.0

Cascading delete trait for Laravel's Eloquent

  Sources   Download

MIT

The Requires

 

The Development Requires

by Matanya Fishaimer

laravel eloquent delete relations cascade