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., (*1)
Sofa/Laravel-Global-Scope
Easy way to define Eloquent Global Scopes in Laravel 5+., (*2)
Introduction
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
., (*3)
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:, (*4)
-
apply
- apply any constraints on the Eloquent\Builder
that your scope requires.
- OPTIONALLY implement helper methods defining
Eloquent\Builder
macros etc.
Installation
Package requires PHP 5.4+ and works with Laravel 5/5.1., (*5)
-
Require the package in your composer.json
:, (*6)
"require": {
...
"sofa/laravel-global-scope": "0.1@dev",
},
Usage example
Let's compare this basic scope with the enhanced scope., (*7)
Roadmap
- [x] Abstract GlobalScope -
remove
is done for you
- [x] Easier constraint verification
- [ ] Handle twisted edge-cases - multi-level nested subquery wheres
- [ ] Generators