laradevsbd/repository

此包将有助于创建仓库文件

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

This package is auto-updated.

Last update: 2024-09-21 10:17:23 UTC


README

Issues Stars Forks

Laravel 仓库 是一个用于Laravel的包,用于抽象数据库层。

此包与Laravel 7.* 8.* 9.* 兼容
安装
composer require laradevsbd/repository

此操作完成后,最终步骤是添加服务提供者。打开config/app.php,并将新项添加到providers数组中。

'providers' => [

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

    ]

用法

创建一个控制台类
php artisan make:repository UserRepository

现在检查目录 App\Repositories\UserRepository.php 并添加模型类

<?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();
     
    }
}

最后,将 UserRepository 实现到 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();
        }
    }

可用方法

以下方法可用

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('*'))

示例

创建新用户

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

更新用户

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

查找用户

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

删除用户

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

联系方式

如果您有任何问题或建议,请在GitHub上提交问题。

许可

此仓库内容遵循 MIT许可

访问我们的网站

www.laradevsbd.com

结论

我试图通过使用仓库来帮助其他工匠完成他们的项目,他们想要使用它来实现Laravel约定。这使得应用程序更容易维护。