Skip to content
Define Laravel Global Scopes easier.
Branch: master
Clone or download
jarektkaczyk Merge pull request #6 from k1ng440/patch-1
Fix for array_values() expects parameter 1 to be array
Latest commit 8a58818 Sep 26, 2017
Type Name Latest commit message Commit time
Failed to load latest commit information.
examples fully featured auto remove Jul 14, 2015
LICENSE Update Feb 19, 2016
phpunit.xml Added removal test Aug 24, 2015

NOTICE Since Laravel 5.2 the way global scopes work changes drastically, so it's no longer required and in fact invalid to use this package.


Easy way to define Eloquent Global Scopes in Laravel 5+.


Global scope in Eloquent is a neat feature. However, it doesn't fit the general idea in Laravel of things being easy to implement, in that it might be very hard to remove the scope from a query, unless you know ins and outs of the Query\Builder.

That being said, you'll find here short but powerful abstract GlobalScope that your scopes will extend, and you only need to implement single method:

  1. apply - apply any constraints on the Eloquent\Builder that your scope requires.
  2. OPTIONALLY implement helper methods defining Eloquent\Builder macros etc.


Package requires PHP 5.4+ and works with Laravel 5/5.1.

  1. Require the package in your composer.json:
        "require": {
            "sofa/laravel-global-scope": "0.1@dev",

Usage example

Let's compare this basic scope with the enhanced scope.


  • Abstract GlobalScope - remove is done for you
  • Easier constraint verification
  • Handle twisted edge-cases - multi-level nested subquery wheres
  • Generators
You can’t perform that action at this time.