gerfey / repository
创建 Laravel 仓库
0.1.6.3
2022-03-09 04:26 UTC
Requires
- php: ^7.1|^7.3|^7.4|^8.0|^9.0
- illuminate/database: ~7.0|^8.0|^9.0
- illuminate/pagination: ~7.0|^8.0|^9.0
- illuminate/support: ~7.0|^8.0|^9.0
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()); } }