Laravel - Repository Design Pattern Implementation
Installation
Run the following command from you terminal:, (*1)
bash
composer require motty/laravel-repository:~0.1.0
, (*2)
or add this to require section in your composer.json file:, (*3)
"motty/laravel-repository: ~0.1.0"
, (*4)
then run composer update
, (*5)
Available Methods
The following methods are available:, (*6)
Motty\Laravel\Repository\Contracts\Repository
public function all($columns = ['*']);
public function lists($value, $key = null);
public function paginate($perPage = 15, $columns = ['*']);
public function findBy($attribute, $value, $columns = ['*']);
public function findManyBy($attribute, $value, $columns = ['*']);
Motty\Laravel\Repository\Contracts\Model
public function newQuery();
Motty\Laravel\Repository\Contracts\EagerLoading
public function with($relations);
Motty\Laravel\Repository\Contracts\Crudable
public function create(array $attributes);
public function find($id, array $columns = ['*']);
public function update(array $data, $id, $attribute = 'id');
public function delete($ids = null);
Motty\Laravel\Repository\Contracts\Criteria
public function skipCriteria($status = true);
public function getCriteria();
public function getByCriteria(BaseCriteria $criteria);
public function pushCriteria(BaseCriteria $criteria);
public function applyCriteria();
Tip and Tricks
If you wanna use joins
just create them as a criteria and inject it into the repository, (*7)
Note: this could help with any other complex query, (*8)