gerfey / repository

创建 Laravel 仓库

0.1.6.3 2022-03-09 04:26 UTC

This package is auto-updated.

Last update: 2024-09-09 09:49:48 UTC


README

Laravel Repositories 是一个用于 Laravel 7+ 的包,用于抽象化数据库层。

安装

使用 artisan 命令

composer require gerfey/repository

使用

使用 artisan 命令

php artisan make:repository Test

自动创建模型

<?php namespace App;

use Illuminate\Database\Eloquent\Model;

class Test extends Model
{

}

自动创建 Repository 类

<?php namespace App\Repository;

use Gerfey\Repository\Repository;
use App\Test;

class TestRepository extends Repository {
    protected $entity = Test::class;
}

创建条件

使用 artisan 命令

php artisan make:repository:criteria TestActive
<?php

namespace App\Criteria;

use Gerfey\Repository\Contracts\Criteria\CriteriaInterface;
use Illuminate\Database\Eloquent\Builder;

class TestActiveCriteria implements CriteriaInterface
{
    public function apply($model): Builder
    {
        return $model->limit(10);
    }
}

现在在任何 Controller 中调用 TestRepository 并添加我们的条件 TestActiveCriteria

<?php namespace App\Http\Controllers;

use App\Repository\TestRepository;
use App\Criteria\TestActiveCriteria;

class TestController extends Controller {

    public function index(TestRepository $testRepository) {    
        $testRepository->addCriteria(new TestActiveCriteria());        
        $testRepository->addCriteria(TestActiveCriteria::class);        
        return \Response::json($testRepository->all());
    }
}