composer require little-superman/laravel-request-params
ServiceProvider 会自动加载
在 config/app.php
中添加
LittleSuperman\RequestParams\Providers\ConsoleServiceProvider::class
,
LittleSuperman\RequestParams\Providers\ConfigServiceProvider::class
[
'providers' => [
...,
LittleSuperman\RequestParams\Providers\ConfigServiceProvider::class,
LittleSuperman\RequestParams\Providers\ConsoleServiceProvider::class,
],
];
php artisan make:modle 模型名称
php artisan mkae:request 资源名称
{
"where": {
"userId|name[!]":1,
"|userId[~]":[1,3,4],
"userId":1,"userId[!]":1
},
"order":{
"userId":"desc"
},
"page":1,
"limit":10,
}
where 用于数据过滤
order 用于排序
page 分页
limit 条数
[
'whereSymbols' => [
//key => '对应前端传递值'
'and' => '&',
'or' => '|',
'equal' => '=',
'notEqual' => '!',
'greater' => '>',
'less' => '<',
'in' => '-',
'notIn' => '!-',
'between' => '<>',
'notBetewen' => '><',
'like' => '~',
'notLike' => '!=',
],
];
[
'orderSymbols' => [
//key => '对应前端传递值'
'asc' => 'asc',
'desc' => 'desc'
],
];
配置文件位置: resources/config/dynamicQuery.php
##使用
-
在模型中引入
LittleSuperman\RequestParams\DynamicQuery\Query
-
模型中添加
$searchField
, key 对应前端使用的字段 value 对应数据库使用字段
$searchField = [
'userId' => 'id',
];
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use LittleSuperman\RequestParams\DynamicQuery\Query;
class User extends Model
{
//引入改特征
use Query;
/**
* 搜索字段
*
* @var array
*/
protected $searchField = [ //允许使用的字段
//前端使用的字段 => 数据库字段
'userId' => 'id',
];
}
在模型后面调用queryable
方法来开启动态查询
User::queryable()->paginate();
加载其他模型搜索字段
User::queryable(User::class, ...)->get();