Repositories

Core Module


Usage

The core module has a base repository and an abstract Eloquent implementation.

Your repositories and its interfaces can extend those base class/interfaces for less code duplication.

All you need to do to bind the interface to the implementation is something like the following:

$this->app->bind(
    'Modules\Blog\Repositories\PostRepository',
    function() {
        return new EloquentPostRepository(new Post);
    }
);

Instead of passing a string as a second argument to your implementation class, you pass a closure with the implemented class with needs an instance of the model.

Non translatable usage

If your entity isn't translatable you'll have to overwrite the all and find($id) methods on your eloquent repository implementation:

public function find($id)
{
    return $this->model->find($id);
}

public function all()
{
    return $this->model->orderBy('created_at', 'DESC')->get();
}

Mobile Analytics