miladimos/laravel-repository
in your project
composer require miladimos/laravel-repository
for install package
php artisan repository:install
for create new repository
php artisan make:repository {ModelName}
Example:
php artisan make:repository Tag
this create a TagRepository and TagEloquentRepositoryInterface
next you must add Repository to RepositoryServiceProvider in repositories property like:
protected $repositories = [
[
TagEloquentRepositoryInterface::class,
TagRepository::class,
],
];
next in your controller add this:
private $tagRepo;
public function __construct(TagEloquentRepositoryInterface $tagRepo)
{
$this->tagRepo = $tagRepo;
}
add custom methods in TagEloquentRepositoryInterface and implement them.
you must have a provider with below content and register it:
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class RepositoryServiceProvider extends ServiceProvider
{
/**
* define your repositories here
*/
protected $repositories = [
[
ModelEloquentRepositoryInterface::class,
ModelRepository::class
],
];
public function register()
{
foreach ($this->repositories as $repository) {
$this->app->bind($repository[0], $repository[1]);
}
}
}
or create it automatically by below command:
php artisan make:repository:provider
and add to app.php providers:
App\Providers\RepositoryServiceProvider::class,
Methods:
$model->all($columns = ['*']);
$model->create(array $data);
$model->update(array $data, $id, $attribute = "id");
$model->find($id);
$model->findOrFail($id);
$model->findWhere(string $field, $condition, $columns);
$model->first();
$model->last();
$model->firstOrCreate();
$model->whereIn($attribute, array $values);
$model->max($column);
$model->min($column);
$model->avg($column);
$model->delete($id);
$model->truncate();
$model->count($columns = ['*']);
$model->paginate($columns = ['*'], $perPage = 8);
$model->simplePaginate($limit = null, $columns = ['*']);
$model->search(array $query, $columns = ["*"]);
$model->pluck($value, $key = null);
$model->with($relations);
$model->toSql();
Related Packages
Version History
| Version | Released | PHP | Laravel | License |
|---|---|---|---|---|
| 0.8.8 | >=7.4| | MIT | ||
| 0.8.6 | >=7.4 | ^7| | MIT | |
| v0.8.3 | >=7.4 | ^7| | MIT | |
| v0.8.1 | >=7.2 | ^7| | MIT | |
| v0.8.0 | >=7.2 | ^7| | MIT | |
| v0.7.8 | >=7.2 | ^7| | MIT | |
| v0.7.5 | MIT | |||
| v0.7.2 | MIT | |||
| v0.7.0 | MIT | |||
| v0.6.6 | MIT | |||
| v0.6.5 | MIT | |||
| v0.6.3 | MIT | |||
| v0.6.1 | MIT | |||
| v0.6.0 | MIT | |||
| v0.5.0 | MIT |
Pre-releases (1)
| Version | Released | PHP | Laravel | License |
|---|---|---|---|---|
| v0.8.2-alpha | >=7.4 | ^7| | MIT |