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

How to use scope in laravel

WBOY
Release: 2022-06-09 11:15:31
Original
3258 people have browsed it

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);
}
Copy after login

Use

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

scopeStatus () calls status ().

User::status()->get();
Copy after login

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]);
    });
}
Copy after login

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();
Copy after login

[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!

Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template