syntech / globalscopes
一个Laravel包,用于向所有模型添加通用模型作用域
1.0.0
2024-08-03 03:54 UTC
Requires
- php: ^8.0
- illuminate/support: ^8.0|^9.0|^10.0
README
一个Laravel包,用于在不修改单个模型的情况下添加全局模型作用域和属性。
安装
您可以通过Composer安装此包
composer require syntech/globalscopes
配置
发布配置文件
php artisan vendor:publish --provider="Syntech\GlobalScopes\GlobalScopesServiceProvider"
这将创建一个位于您的Laravel应用程序配置目录中的globalscopes.php配置文件。
示例配置
return [ /* |-------------------------------------------------------------------------- | Global Query Methods |-------------------------------------------------------------------------- | | Define global query methods for all Eloquent models. | */ 'methods' => [ 'approved' => function ($query) { return $query->where('status', 1)->where('approved', 1); }, ], /* |-------------------------------------------------------------------------- | Global Attributes |-------------------------------------------------------------------------- | | Define global attributes for all Eloquent models. | */ 'attributes' => [ 'image' => function ($value) { return $value ? $value : asset('images/default.png'); }, ], /* |-------------------------------------------------------------------------- | Global Scopes |-------------------------------------------------------------------------- | | Define global scopes to be applied to all Eloquent models. | */ 'scopes' => [ 'approved' => 'status = 1 AND approved = 1', ], ];
用法
添加全局作用域
一旦配置完毕,全局作用域将自动应用于所有Eloquent模型。
全局属性可以像在模型上直接定义一样访问
$customers = Customer::active()->get();
return $customers; // 使用全局属性逻辑