承接 jetbox/laravel-repository 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

jetbox/laravel-repository

最新稳定版本:v0.1.7

Composer 安装命令:

composer require jetbox/laravel-repository

包简介

Laravel Repository Package

README 文档

README

Laravel Repository - Social Image

Laravel Version Support

  • ^5.5 ^6.0 ^7.0 ^8.0 ^9.0 ^10.0 ^11.0

Php Version Support

  • ^7.0 ^8.0

Latest Stable Version Total Downloads Latest Unstable Version License

Daily Downloads Monthly Downloads Total Downloads

Issues Stars Forks

Table of Contents

Installation

Composer

Execute the following command to get the latest version of the package:

composer require jetbox/laravel-repository

Repository Install

php artisan repository:install

Create Repository

Create a new Eloquent model repository class

php artisan make:repository UserRepository

Methods

JetBox\Repositories\Contracts\RepositoryInterface

  • get($columns = ['*'], $take = false, $pagination = false, $where = false);
  • all($columns = ['*']);
  • take($take, $columns = ['*']);
  • paginate($perPage = false, $columns = ['*']);
  • withPaginate($relations, $columns = ['*'], $paginate = 15);
  • simplePaginate($perPage = false, $columns = ['*']);
  • limit($take, $columns = ['*']);
  • find($id, $columns = ['*']);
  • findMany($ids, $columns = ['*']);
  • findOrFail($id, $columns = ['*']);
  • first($columns = ['*']);
  • firstOrFail($columns = ['*']);
  • where($column, $value = null, $columns = ['*']);
  • whereOrFail($column, $value = null, $columns = ['*']);
  • whereAll($column, $value = null, $columns = ['*']);
  • whereWithAll($column, $value = null, $relations, $columns = ['*']);
  • whereBetween($column, $value = [], $columns = ['*']);
  • with($relations, $columns = ['*']);
  • withCount($relations, $columns = ['*']);
  • pluck($column, $key = null);
  • create(array $attributes);
  • forceCreate(array $attributes);
  • update(array $attributes, $model, bool $tap = false, bool $forceFill = false);
  • updateForce(array $attributes, $model, bool $tap = false);
  • delete($model, bool $tap = false, bool $forceDelete = false);
  • forceDelete($model, bool $tap = false);
  • querySortable(string $orderByColumn, string $orderByDirection)

Helpers

  • lLog(string $message, string $log = 'info', array $context = [], string $disk = null)
  • is_json(string $str, bool $returnData = false)
  • currentUser(): ?Authenticatable
  • numberFormatShort($n, int $precision = 2)

EnvironmentTrait

use JetBox\Repositories\Traits\EnvironmentTrait
  • changeEnvironmentVariable(string $key, $value): void
  • environmentVariableAllUpdate(array $data): void

Translatable

use JetBox\Repositories\Traits\Translatable
  • withTranslations(Builder $query, $locales = null, $fallback = true): void
  • getTranslated($attribute, $locale = null, $fallback = true)

File Facade

  • JetBoxFile::save(string $path, object $file, string $fileName = null, array $options = [])
  • JetBoxFile::delete(Model $model, string $field, string $path)
  • JetBoxFile::numberFormatSizeUnits(int $sizeInBytes)

Constants

  • AppConstants::permissions(): array
  • AppConstants::roles(): array
  • AppConstants::status(): array
namespace App\Constants;

use JetBox\Repositories\Constants\AppConstants as BaseAppConstants;

final class AppConstants extends BaseAppConstants
{
    const ROLE_VISITOR = 'visitor';
    const ROLE_EDITOR = 'editor';

    const PERMISSION_VIEW_BLOG = 'view_blog';
}

Usage

Create a Repository

Recommended This Shorter

Laravel ^5.7 ^6.0 ^7.0 ^8.0 if your model is not linked to the repository auto, you can override the $model property of your repository

namespace App\Repositories;

class UserRepository extends AbstractRepository
{

}

Or

Laravel ^5.2 <=5.6 override the $model property

namespace App\Repositories;

use App\Models\User;

class UserRepository extends AbstractRepository
{
   /**
    * @var string
    */
   protected $model = User::class;

   /**
    * Global OrderBy Column
    * @var string
    */
   public $orderByColumn = 'created_at';

   /**
    * Global OrderBy Direction
    * @var string
    */
   public $orderByDirection = 'desc';
}

Use methods

namespace App\Http\Controllers;

use Illuminate\Contracts\Foundation\Application;
use Illuminate\Contracts\View\Factory;
use Illuminate\View\View;
use App\Repositories\UserRepository as UserR;

class UserController extends BaseController {

    /**
     * @var $users
     */
    protected $users;

    /**
    * UserController constructor.
    * @param UserR $users
    */
    public function __construct(UserR $users)
    {
        $this->users = $users;
    }

    /**
    * @return Application|Factory|View
    */
    public function index()
    {
        $users = $this->users->all();

        return view('users', compact('users'));
    }

}

Find all results in Repository

$users = $this->users->all();

Find by result by id

$user = $this->users->find($id);

统计信息

  • 总下载量: 580
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 45
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 44
  • Watchers: 1
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2021-01-11