11# Laravel Repositories
22
3+ [ ![ Latest Stable Version] ( https://poser.pugx.org/freevital/laravel-repository/v/stable )] ( https://packagist.org/packages/freevital/laravel-repository )
4+ [ ![ Total Downloads] ( https://poser.pugx.org/freevital/laravel-repository/downloads )] ( https://packagist.org/packages/freevital/laravel-repository )
5+ [ ![ Monthly Downloads] ( https://poser.pugx.org/freevital/laravel-repository/d/monthly )] ( https://packagist.org/packages/freevital/laravel-repository )
6+ [ ![ License] ( https://poser.pugx.org/freevital/laravel-repository/license )] ( https://packagist.org/packages/freevital/laravel-repository )
7+
38Laravel Repositories to abstract the database layer.
49
510##Installation
@@ -85,6 +90,32 @@ use Illuminate\Database\Eloquent\Builder;
8590use Freevital\Repository\Contracts\CriteriaContract;
8691use Freevital\Repository\Contracts\RepositoryContract;
8792
93+ class BySlugCriteria implements CriteriaContract
94+ {
95+ /**
96+ * Apply criteria in query repository.
97+ *
98+ * @param Builder $query
99+ * @param RepositoryContract $repository
100+ *
101+ * @return \Illuminate\Database\Eloquent\Builder
102+ */
103+ public function apply(Builder $query, RepositoryContract $repository)
104+ {
105+ return $query->with('comments.users');
106+ }
107+ }
108+ ```
109+
110+ You may TODO
111+
112+ ``` php
113+ namespace App\Repositories\Criteria;
114+
115+ use Illuminate\Database\Eloquent\Builder;
116+ use Freevital\Repository\Contracts\CriteriaContract;
117+ use Freevital\Repository\Contracts\RepositoryContract;
118+
88119class BySlugCriteria implements CriteriaContract
89120{
90121 /**
@@ -150,7 +181,7 @@ class PostController extends Controller
150181
151182##Available Methods
152183
153- ###Freevital\Repository\Contracts\RepositoryContract
184+ #### Freevital\Repository\Contracts\RepositoryContract
154185
155186``` php
156187paginate($limit = null, $columns = ['*'], $method = 'paginate')
@@ -182,7 +213,7 @@ scopeQuery(\Closure $scope)
182213resetScope()
183214```
184215
185- ###Freevital\Repository\Contracts\RepositoryCriteriaContract
216+ #### Freevital\Repository\Contracts\RepositoryCriteriaContract
186217
187218``` php
188219pushCriteria($criteria)
@@ -193,7 +224,7 @@ skipCriteria($status = true)
193224resetCriteria()
194225```
195226
196- ###Freevital\Repository\Contracts\CriteriaContract
227+ #### Freevital\Repository\Contracts\CriteriaContract
197228
198229``` php
199230apply(Builder $query, RepositoryContract $repository)
0 commit comments