Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I define default where condition for all select queries in my models?

I need to set a default where condition in my models.

So actually i have to set it in my all select queries.

Query like:

->where('status','active')
like image 508
Murad Asgarov Avatar asked Dec 31 '25 01:12

Murad Asgarov


1 Answers

You can use laravel scope (local scope or global scope )in model:

Global scope Example :

In Model.php:

 protected static function boot()
    {
        parent::boot();    
        static::addGlobalScope('status', function (Builder $builder) {
            $builder->where('status', 'active');
        });
    }

Local Scope Example :

In Model.php

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

in controller :

Model::isActive()->get();

source

like image 116
Dhruv Raval Avatar answered Jan 01 '26 15:01

Dhruv Raval