Home  >  Article  >  PHP Framework  >  How to use scope in laravel

How to use scope in laravel

WBOY
WBOYOriginal
2022-06-09 11:15:313176browse

In laravel, scope is used to process data in the model. You can define methods at the beginning of the scope in the model. These methods can be called directly through the model and are called query scopes. The syntax is "public function scope" Capitalize the first letter of the word ($query){...}".

How to use scope in laravel

#The operating environment of this article: Windows 10 system, Laravel version 8, Dell G3 computer.

How to use scope in laravel

Scope scope in laravel

In laravel, the data (belonging or not) processed in the template (add, delete, modify, check) is introduced Use scope to handle

That is, add the prefix scope in the template definition method.

In short, the model in Laravel can define methods at the beginning of the scope, and these methods can be called directly through the model. This type of approach is also called query scope.

Conditional queries are often used in data queries. Some of these query conditions are the same. Scope can realize the reuse of these same query conditions.

Normal scope

Definition

The method name is scope with the first letter in capital letters (this can be defined at will)

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

Use

The function whose first letter is lowercase is called after removing the scope.

scopeStatus () calls status ().

User::status()->get();

Global scope

We need to redefine the boot method, integrate the parent class boot, and add the global scope, so that it will be used globally by default.

protected static function boot()
{
    parent::boot(); // TODO: Change the autogenerated stub
    static::addGlobalScope('avaiable',function (Builder $builder){
        $builder->whereIn('status', [0, 1]);
    });
}

Sometimes when we have queries that don’t need this global scope, we just need to remove it.

Use withOutGlobalScope() method

Post::withOutGlobalScope('avaiable')->get();

[Related recommendations: laravel video tutorial]

The above is the detailed content of How to use scope in laravel. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn