Eloquent Scopes

Reusable query constraints for your models

Scopes extract common query logic into reusable, chainable methods on your Eloquent models.

Reusable query constraints defined as methods on your model. Prefix with 'scope' and Laravel handles the rest.

Query builder
SELECT * FROM posts
1
scopePublished
WHERE published = true
2
scopeActive
WHERE active = true
PHP
class Post extends Model {
    public function scopePublished($query) {
        return $query->where('published', true);
    }

    public function scopeActive($query) {
        return $query->where('active', true);
    }

    public function scopeRecent($query) {
        return $query->orderBy('created_at', 'desc');
    }
}