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.
3,019 1
Install
composer require rkooistra/super-eloquent-repository
Latest Version:1.0.2-stable
PHP:>=7.2
License:MIT
Last Updated:Apr 29, 2020
Links: GitHub  ·  Packagist
Maintainer: keukenmagazijn

Super Eloquent Repository

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;

Related Packages

gabrieloliverio/laravel5-generators

Database metadata-based generators for Laravel 5

1
erirk/paypalpayment

laravel-paypalpayment is simple package help you process direct credit card paym...

0
doctrine/dbal

Powerful PHP database abstraction layer (DBAL) with many features for database s...

631,580,251 9,707
laravel/framework

The Laravel Framework.

580,311,802 34,925
laravel/tinker

Powerful REPL for the Laravel framework.

489,754,436 7,444