hooklife/query-builder 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

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

hooklife/query-builder

最新稳定版本:1.1.3

Composer 安装命令:

composer require hooklife/query-builder

包简介

README 文档

README

修改 model 使 model 支持 querybuilder

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Hooklife\QueryBuilder\QueryBuildable;

class User extends Model
{
    use QueryBuildable;
}

创建 QueryBuilder

Querybuilder 匹配规则 为 {ModelName}QueryBuilder.php,例如下面生成的 QueryBuilder 会自动匹配 UserModel

php artisan make:queryBuilder UserQueryBuilder

使用 QueryBuilder

 User::queryBuilder($request->all())->get()

编写 QueryBuilder

用户的参数会自动传入对应的 QueryBuilder , 并且会自动调用请求key对应的方法,参数喂请求 key 的内容

下面为一个简单例子,传入数组为 ["user_id":1],则 QueryBuilder 会自动调用 userId 方法,参数 $value 为1

namespace App\QueryBuilders;

use Hooklife\QueryBuilder\QueryBuilder;

class UserQueryBuilder extends QueryBuilder
{
    public function userId($value){
        $this->query->where('user_id',$value)
    }
}

自带插件

filterable

namespace App\QueryBuilders;
use Hooklife\QueryBuilder\Concerns\Filterable;
class UserQueryBuilder extends QueryBuilder
{
    use Filterable;
    public array $simpleFilters = [
        'name' => ['like','%?%']
        'status'
    ];
}

以上的例子相当于

namespace App\QueryBuilders;
class UserQueryBuilder extends QueryBuilder
{
    public function name($value){
        $this->query->where('name','like','%'.$value.'%');
    } 
    
    public function status($value){
        $this->query->where('status',$value);
    }
}

sortable

namespace App\QueryBuilders;
use Hooklife\QueryBuilder\Concerns\Sortable;
class UserQueryBuilder extends QueryBuilder
{
    use Sortable;
    protected $sortPrefix = 'sort_'
    public array $simpleSorts = [
        'name',
        'created_at' => 'desc'
    ];
}

以上的例子相当于

namespace App\QueryBuilders;
class UserQueryBuilder extends QueryBuilder
{
    public function boot(){
        $this->query->sortBy('created_at','desc');
    }
    public function sortName($value){
        $this->query->orderBy('name',$value);
    } 
    
}

统计信息

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

GitHub 信息

  • Stars: 3
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: Unknown
  • 更新时间: 2021-04-22