lacodix/laravel-global-or-scope
最新稳定版本:v1.2.0
Composer 安装命令:
composer require lacodix/laravel-global-or-scope
包简介
A Laravel package to add possibility to use global scopes with an or operation in Eloquent Models.
README 文档
README
This package allows you to add global scopes to models combined with an or condition. It contains additional functionality to disable some or all or-scopes on the fly.
Documentation
You can find the entire documentation for this package on our documentation site
Installation
composer require lacodix/laravel-global-or-scope
Basic Usage
Just add the trait to your eloquent model and then you can use the addGlobalOrScopes method when booting.
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Scope; use Lacodix\LaravelGlobalOrScope\Traits\GlobalOrScope; class Post extends Model { use GlobalOrScope; public static function booting(): void { static::addGlobalOrScopes([Scope1::class, Scope2::class]); } } class Scope1 implements Scope { public function apply(Builder $builder, Model $model) { return $builder->whereNull('col1')->where('col2', 1); } } class Scope2 implements Scope { public function apply(Builder $builder, Model $model) { return $builder->where('col3', 2); } } ... Post::query()->where('user_id', 1000)->get();
This results in running the following SQL Query
select * from "posts" where "user_id" = 1000 and (("col1" is null and "col2" = 1) or ("col3" = 2))
For temporary disabling you can use
Post::query()->withoutGlobalOrScopes()->where('user_id', 1000)->get();
what results in a simple
select * from "posts" where "user_id" = 1000
Testing
composer test
Contributing
Please run the following commands and solve potential problems before committing and think about adding tests for new functionality.
composer rector:test composer insights composer csfixer:test composer phpstan:test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Credits
License
The MIT License (MIT). Please see License File for more information.
统计信息
- 总下载量: 583
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 5
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2024-02-19