This package is abandoned and no longer maintained. No replacement package was suggested.

Easy way to define Laravel eloquent global scope.

v0.2 2015-07-13 23:36 UTC

This package is auto-updated.

Last update: 2020-02-07 05:19:25 UTC


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