laradevsbd/repository

This package will be help to create repository file

dev-main 2022-06-21 05:04 UTC

This package is auto-updated.

Last update: 2025-04-21 11:33:12 UTC


README

Issues Stars Forks

Laravel Repositories is a package for Laravel which is used to abstract the database layer.

This package is compatible with Laravel 7.* 8.* 9.*
Installation
composer require laradevsbd/repository

Once this operation completes, the final step is to add the service provider. Open config/app.php, and add a new item to the providers array.

'providers' => [

        // .........................
        \Laradevsbd\Repository\LaradevsbdRepositoryServiceProvider::class,

    ]

Usages

Create an console class
php artisan make:repository UserRepository

Now Check directory App\Repositories\UserRepository.php and add the model class

<?php

namespace App\Repositories;
use Laradevsbd\Repository\Repositories\BaseRepository;
use App\Models\User;

class UserRepository extends BaseRepository
{
    /**
     * @return string
     *  Return the model
     */
     //php artisan make:repository repositoryName
    public function model()
    {
        return User::class;
    }

    public function getFieldsSearchable()
    {
            // TODO: Implement getFieldsSearchable() method.
    }

    public function store($input)
    {
            // TODO: Implement
    }

    public function update($input, $id)
    {
            // TODO: Implement
    }
    
    // you can create any name of method
    
    public function inactive_user()
    {
     
        return User::query()->where('status',0)->get();
     
    }
}

Finally, Implement UserRepository into UserController

    <?php
    
    namespace App\Http\Controllers;
    
    use App\Repositories\UserRepository;
    use Illuminate\Http\Request;
    
    class UserController extends Controller
    {
        /** @var UserRepository */
        private $userRepository;
    
        /**
         * Create a new controller instance.
         *
         * @param UserRepository $userRepository
         */
    
        public function __construct(UserRepository $userRepository)
        {
            $this->userRepository = $userRepository;
        }
    
        public function index()
        {
            $users=$this->userRepository->all();
            return view('users.index');
        }
    
        public function store(Request $request)
        {
            return $this->userRepository->store($request->all());
        }
    
        public function update($id,Request $request)
        {
            return $this->userRepository->update($request->all(),$id);
        }
    
        public function inactive_users()
        {
            return $this->userRepository->inactive_user();
        }
    }

Available Methods

The following methods are available:

public function all($columns = array('*'))
public function paginate($perPage = 1, $columns = array('*'));
public function create(array $data)
public function update(array $data, $id, $attribute = "id")
public function delete($id)
public function find($id, $columns = array('*'))

Example

Create a new User:

$this->userRepository->create(Input::all());

Update a user:

$this->userRepository->update(Input::all(),$id);

Find a user:

$this->userRepository->find($id);

Delete a user:

$this->userRepository->delete($id);

Contact

Open an issue on GitHub if you have any problems or suggestions.

License

The contents of this repository is released under the MIT license

Visit Our Website

www.laradevsbd.com

Conclusion

I am trying to help another artisan to complete their project by using a repository, which they wanna use to Laravel contract. This makes applications much easier to maintain.