ymslavov / laravel-repository
Laravel模型的具有状态功能的存储库。
3.0
2017-05-01 17:20 UTC
Requires
- php: >=5.6.4
- hanneskod/classtools: ^1.1
- laravel/framework: 5.3.*
README
基于bosnadev.com上的工作 bosnadev.com,但增加了一些对多记录操作有帮助的方法。
需要Laravel 5.3+。
通过Composer安装
composer require ymslavov/laravel-repository
使用存储库生成器
该包提供了一个简单的方法来为系统中所有模型生成存储库类。
您只需在config/app.php的'providers'数组中注册服务提供者
'providers' => [
...other providers here...,
YasenSlavov\LaravelRepository\Providers\LaravelRepositoryServiceProvider::class
]
然后在命令行工具中使用以下命令
php artisan repositories:generate
脚本将扫描app/目录中所有继承Eloquent Model类的类,并为它们创建存储库类。
直接扩展AbstractRepository
如果您不想使用自动生成的类,可以直接从包中扩展AbstractRepository类。
示例
class UsersRepository extends AbstractRepository {
/**
* Specify the fully-qualified model name. Best use Classname::class
*
* @return string
*/
function model()
{
return User::class;
}
}
$usersRepo = \App::make(UsersRepository::class);
$usersWithTitleManager = $usersRepo
->clearScope() //clear any state already established in the repo object
->pushCriteria(new ByRoleTitle('Manager'))
->all();