2017 © Pedro Peláez
 

utility laravel-pivot-soft-deletes

Soft delete Eloquent pivot models using Laravel SoftDeletes trait.

image

mlezcano1985/laravel-pivot-soft-deletes

Soft delete Eloquent pivot models using Laravel SoftDeletes trait.

  • Monday, December 11, 2017
  • by mlezcano1985
  • Repository
  • 2 Watchers
  • 3 Stars
  • 953 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 2 Open issues
  • 2 Versions
  • 174 % Grown

The README.md

DEPRECATED

This is no longer supported, please consider using another package instead., (*1)

Pivot soft deletes for the Laravel PHP Framework

Easy and fast way to soft deletes Eloquent pivot models using Laravel SoftDeletes trait., (*2)

Installation

This trait is installed via Composer. To install, simply add to your composer.json file:, (*3)

$ composer require mlezcano1985/laravel-pivot-soft-deletes

Example

Include SoftDeletes and PivotSoftDeletes in Many to Many models., (*4)

<?php
namespace App;

use Mlezcano1985\Database\Support\PivotSoftDeletes;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Support\Facades\Hash;

class Account extends Authenticatable
{
    use Notifiable, SoftDeletes, PivotSoftDeletes;

    /**
     * The attributes that should be mutated to dates.
     *
     * @var array
     */
    protected $dates = ['deleted_at'];
    }

    /**
     * @return BelongsToMany
     */
    public function roles()
    {
        return $this->belongsToMany(Role::class);
    }

    /**
     * Automatically creates hash for the user password.
     *
     * @param  string $value
     * @return void
     */
    public function setPasswordAttribute($value)
    {
        $this->attributes['password'] = Hash::make($value);
    }
}

and, (*5)

<?php
namespace App;

use Mlezcano1985\Database\Support\PivotSoftDeletes;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Database\Eloquent\Model;

class Role extends Model
{
    use SoftDeletes, PivotSoftDeletes;

    /**
     * The attributes that should be mutated to dates.
     *
     * @var array
     */
    protected $dates = ['deleted_at'];
    }

    /**
     * @return BelongsToMany
     */
    public function accounts()
    {
        return $this->belongsToMany(Account::class);
    }
}

Now we can use detach() method on Account model to softdelete the pivot table, (*6)

$account = App\Role::find($role_id)->accounts()->findOrFail($account_id)
$account->detach(); // Soft delete the Intermediate Table

Defining Custom Intermediate Table Model

If we want to define a Custom Intermediate Table Model, the process works in the same way. For example:, (*7)

/**
 * @return BelongsToMany
 */
public function roles()
{
    return $this->belongsToMany(Role::class)->using(AccountRole::class);
}

but is hight reccommended to include SoftDeletes trait on custom pivot model, (*8)

<?php
namespace App;

use Illuminate\Database\Eloquent\Relations\Pivot;
use Illuminate\Database\Eloquent\SoftDeletes;

class AccountRole extends Pivot
{
    use SoftDeletes;

    /**
     * The attributes that should be mutated to dates.
     *
     * @var array
     */
    protected $dates = ['deleted_at'];
    }
}

and now, (*9)

$account = App\Role::find($role_id)->accounts()->findOrFail($account_id)
$account->detach(); // Soft delete the Intermediate Table

Support

If you are having general issues with this package, feel free to contact me on Twitter., (*10)

If you believe you have found an issue, please report it using the GitHub issue tracker, or better yet, fork the repository and submit a pull request., (*11)

If you're using this package, I'd love to hear your thoughts. Thanks!, (*12)

The Versions

11/12 2017

dev-master

9999999-dev

Soft delete Eloquent pivot models using Laravel SoftDeletes trait.

  Sources   Download

MIT

The Requires

 

by Avatar mlezcano1985

laravel trait softdeletes pivot-soft-deletes laravel-softdeletes-trait

11/12 2017

1.0.0

1.0.0.0

Soft delete Eloquent pivot models using Laravel SoftDeletes trait.

  Sources   Download

MIT

The Requires

 

by Avatar mlezcano1985

laravel trait softdeletes pivot-soft-deletes laravel-softdeletes-trait