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
其他信息
- 授权协议: Unknown
- 更新时间: 2017-10-24