rkooistra / super-eloquent-repository
A concrete repository for Eloquent models to allow quick implementation of common functionalities, such as CRUD and search methods. Save yourself the boring stuff.
1.0.2-stable
2020-04-29 10:28 UTC
Requires
- php: >=7.2
- laravel/framework: >=5.5
Requires (Dev)
- mockery/mockery: ^1.0
- phpunit/phpunit: ^7.5
This package is auto-updated.
Last update: 2025-04-29 01:01:49 UTC
README
Introduction
Welcome to the Super Eloquent Repository library package! This library has the simple use of eliminating having to write the same method over and over again for all your Repositories, allowing you to do the fun programming.
The package is basically a concrete superclass which you can extend all your default Eloquent repositories with. This superclass contains all basic functionalities which you would normally have to write again and again for normal CRUD methods.
How to install and use the package
- Implement this package into your project by running
composer require rkooistra/super-eloquent-repository
. - Create a class which extends the
RKooistra\SuperEloquentRepository\Abstracts\ConcreteResourceRepository
package. - You must implement the
getModel()
stub per the inheritance rules; configure this to return the class of your respective model, ie:/** @return string <Return the full path to the class here.> */ protected function getModelClass(): string { return \App\Entities\User::class; }
- You should now be able to use all of the implemented methods!
Available methods (per 19-12-2019)
public function getModel(): Builder; public function setConnection($connection); public function getAll(array $selectKeys = null, array $relations = null); public function findByKey( string $key, string $value, array $selectKeys = null, array $relations = null ): Collection; public function findByKeyWhereIn( string $key, array $array, array $selectKeys = null ): Collection; public function findByKeyWhereNotIn( string $key, array $array, array $selectKeys = null ): Collection; public function findOrFail(int $id, array $selectKeys = null): Model; public function getAllResources (array $selectKeys = [], array $relations = []): Collection; public function getAllResourcesWhereHas (string $whereHasRelation, $whereHasCallback, array $selectKeys = [], array $relations = []): Collection; public function findByKeyWhereLike(string $key, string $value, array $selectKeys = null, array $relations = null): Collection; public function updateResource(int $id, array $fields): int; public function createResourceByArray(array $array): Model; public function destroy(string $selectKey, array $ids): int; public function destroyWhereNotIn(string $selectKey, array $ids): int; public function firstOrCreate(array $insertables, string $identifierKey = 'id', array $selectKeys = [], array $relations = []): Model; public function updateFirstOrCreate(array $insertables, string $identifierKey = 'id', array $selectKeys = [], array $relations = []): Model;