Laravel Deletable Trait


July 17th, 2020


Laravel Deletable is a package to handle deletion restrictions to your Eloquent models gracefully. The package provides a RestrictsDeletion trait for models you’d like to control deletion:

namespace App;

use F9Web\LaravelDeletable\Traits\RestrictsDeletion;
use Illuminate\Database\Eloquent\Model;

class User extends Model
    use RestrictsDeletion;

    public function isDeletable(): bool
        return $this->orders->isEmpty();

When a model’s isDeletable() method returns false, a model exception occurs:

namespace App\Controllers;

use F9Web\LaravelDeletable\Exceptions\NoneDeletableModel;
use App\User;

class UsersController
    public function destroy(User $user): bool
        try {
        } catch (NoneDeletableModel $e) {

You can learn more about this package, get full installation instructions, and view the source code on GitHub at f9webltd/laravel-deletable.

Filed in:

Paul Redmond

Full stack web developer. Author of Lumen Programming Guide and Docker for PHP Developers.