kelcampus/laravel-repository
最新稳定版本:1.10.0
Composer 安装命令:
composer require kelcampus/laravel-repository
包简介
Cópia do pacote Artesãos Warehouse Tag 3.0.0 ajustado para o Laravel 10
README 文档
README
Cópia do pacote https://github.com/artesaos/warehouse
Ajustado para funcionar com Laravel 7, Laravel 8, Laravel 9.
Como usar
Retirado de https://github.com/artesaos/warehouse
Warehouse v2 é um pacote base, ele implementa o básico sem nenhuma regra de negócio definida.
Há duas classes base: BaseRepository e AbstractCrudRepository
BaseRepository
Esta classe implementa o contrato BaseRepository, que possui três assinaturas:
/** * Returns all records. * If $take is false then brings all records * If $paginate is true returns Paginator instance. * * @param int $take * @param bool $paginate * * @return EloquentCollection|Paginator */ public function getAll($take = 15, $paginate = true);
/** * Retrieves a record by his id * If $fail is true fires ModelNotFoundException. When no record is found. * * @param int $id * @param bool $fail * * @return Model */ public function findByID($id, $fail = true);
/** * @param string $column * @param string|null $key * * @return \Illuminate\Support\Collection|array */ public function lists($column, $key = null);
Já na implementação, BaseRepository disponibiliza dois métodos protegidos newQuery() e doQuery($query = null, $take = 15, $paginate = true). Eles são amplamente usados nos repositórios.
newQuery
newQuery retorna um objeto QueryBuilder do eloquent, à partir da propriedade modelClass.
protected function newQuery() { return app()->make($this->modelClass)->newQuery(); }
Essa propriedade precisa ser definida em todos as classes repositório
doQuery
doQuery processa a query e retorna uma collection ou um objeto paginate, dependendo dos parametros passados
protected function doQuery($query = null, $take = 15, $paginate = true) { if (is_null($query)) { $query = $this->newQuery(); } if (true == $paginate): return $query->paginate($take); endif; if ($take > 0 || false != $take) { $query->take($take); } return $query->get(); }
统计信息
- 总下载量: 1.29k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 2
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2020-08-19