Exclude Model Entities From Eloquent With the Laravel Exclusions Package

Packages

June 11th, 2021

Exclude Model Entities From Eloquent With the Laravel Exclusions Package

Laravel Excludable is a package to exclude models from Eloquent queries. You can define a subset of models that should be excluded when you query an individual model or a collection:

use App\Models\Article;
 
$article = Article::query()->findOrFail(1)
 
$article->addToExclusion();
 
$article->excluded(); // returns true
 
// Throws NotFoundHttpException after exclusion
Article::findOrFail(1);

Similar to the soft deletes functionality, you can include “excluded” models with the following scope:

Article::withExcluded()->get();
 
// Or only return excluded models
Article::onlyExcluded()->get();

Finally, here’s an example of how to configure Eloquent models to support exclusions:

<?php
 
namespace App\Models;
 
use HFarm\Excludable\Excludable;
 
class Article extends Model
{
use Excludable;
 
protected $fillable = [
'title',
'body',
];
}

You can learn more about this package, get full installation instructions, and view the source code on GitHub.


This package was submitted to our Laravel News Links section. Links is a place the community can post packages and tutorials around the Laravel ecosystem. Follow along on Twitter @LaravelLinks

Filed in:

Paul Redmond

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