承接 hamba/queryget 相关项目开发

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

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

hamba/queryget

Composer 安装命令:

composer require hamba/queryget

包简介

Helper for query eloquent model from request

README 文档

README

Laravel query get is helper to perform query to eloquent model.

Read full documentation

Installation

composer require hamba/queryget

Usage

You have these models:

class User extends Model{
    protected $fillable = [
        'username', 'email'
    ];

    public function roles()
    {
        return $this->belongsToMany(Role::class, 'role_users');
    }

    public $queryable = [
        'email' => 'string',//enable attribute email to be queried
        'name' => 'string:username',//enable attribute with alias
        'roles' => 'relation'//enable relation 'roles'
    ];
}
class Role extends Model
{
    protected $fillable = [
        'name', 'permissions',
    ];
    public $queryable = ['name', 'permissions'];
}

and you have this controller:

class UserController extends Controller
{
    public function index()
    {
        return qg(User::class)->apply()->get();
    }
}

and this route:

Route::get('users', 'UserController@index');

With QueryGet you can do these requests:

Select attribute or relation:

  • /users?props[]=name
{
    "total":3,
    "data":[
        {"id":1,"name":"User 1"},
        {"id":2,"name":"User 2"},
        {"id":3,"name":"User 3"},
    ]
}
  • /users?props[]=name&props[]=roles.name
{
    "total":3,
    "data":[
        {
            "id":1,
            "name":"User 1",
            "email":"user1@mail.com",
            "roles":[
                {"id":1,"name":"admin"},
                {"id":2,"name":"manager"}
            ]
        },
        {
            "id":2,
            "name":"User 2",
            "email":"user2@mail.com",
            "roles":[
                {"id":2,"name":"manager"}
            ]
        }, 
        {
            "id":3,
            "name":"User 3",
            "email":"user3@mail.com",
            "roles":[
                {"id":3,"name":"employee"}
            ]
        }, 
    ]
}

Filter attribute or relation:

  • /users?props=id&email=user1%
{
    "total":1,
    "data":[{"id":1}]
}

Sort attribute or relation

  • /users?props[]=id&props[]=name&sortby=name_desc
{
    "total":3,
    "data":[
        {"id":3,"name":"User 3"},
        {"id":2,"name":"User 2"},
        {"id":1,"name":"User 1"}
    ]
}

Do pagination

  • /users?props[]=name&page=1&pagesize=1
{
    "total":3,
    "data":[
        {"id":2,"name":"User 2"},
    ]
}

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: Unknown
  • 更新时间: 2017-10-24

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固