vdouchy / laravel-model-injector
0.2.0
2021-03-20 22:24 UTC
Requires
- php: ^7.4|^8.0
- illuminate/database: *
- illuminate/support: *
This package is auto-updated.
Last update: 2024-09-21 06:14:27 UTC
README
Laravel Model Injector
此包是一个简单的特性,用于帮助实现模型注入。
主要目标是替换配置中设置的类,如laravel-permission中的设置
// In: config/permission.php return [ 'models' => [ 'permission' => Permission::class, 'role' => Role::class, ], ... ]; // In: src/PermissionRegistrar.php public function __construct(CacheManager $cacheManager) { $this->permissionClass = config('permission.models.permission'); $this->roleClass = config('permission.models.role'); ... }
而是执行以下操作:
// In: src/PermissionRegistrar.php use HasModelInjection; public function __construct(CacheManager $cacheManager) { $this->permissionClass = $this->mClass(Permission::class); $this->roleClass = $this->mClass(Role::class); ... }
要使用自己的类,任何开发者都可以这样做
$this->app->bind(Permission::class, MyCustomPermission::class);
当前API
mQuery(string $model): Builder:允许你针对此模型构建查询。
mNew(string $model, array $attributes = []): Model:允许你创建此模型的新实例。
mClass(string $model): string:返回与模型关联的类。
mTable(string $model): string:返回模型的表名。
mColumns(string $model): Collection:返回列的集合。