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){...}".
#The operating environment of this article: Windows 10 system, Laravel version 8, Dell G3 computer.
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!