ymslavov/laravel-repository

Laravel模型的具有状态功能的存储库。

3.0 2017-05-01 17:20 UTC

This package is auto-updated.

Last update: 2024-08-29 04:31:15 UTC


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();