magein / think-utils
个人开发中使用thinkphp框架常用的工具类
v3.0.0
2025-08-15 08:39 UTC
Requires
- php: ^7.2
- ext-json: *
- magein/utils: ^3.0.0
- topthink/framework: ^6.1.0
README
简介
- 使用thinkphp框架开发习惯使用到的基础类
- api接口服务响应
MainModel说明
快捷查询
Models下面的模型继承MainModel享有额外的查询功能
/**
* @method static Order|null _orderNo($order_no);
* @method static \think\paginator\driver\Bootstrap|null __orderNo($order_no);
* @method static \think\model\Collection|null ___orderNo($order_no);
*
*/
// 查询单个数据 拼接查询条件['order_no'=>$order_no]
$order_no='';
Order::_orderNo($order_no);
// 分页查询 可以在请求中携带page_size参数,也可以在model中重新定义page_size属性值
Order::__orderNo($order_no);
Order::__order_no($order_no);
Order::__order_no__($order_no);
Order::__orderNo($order_no,10);
Order::__orderNo($order_no,['page_size'=>10]);
// 查询全部数据
Order::___orderNo($order_no);
快捷方法
检索并且创建
Order::firstOrCreate($where,$params)
更新或者创建,会更新满足条件的所有数据
Order::updateOrCreate($where,$params)
SoftModel说明
继承MainModel,数据进行软删除
api接口服务
背景
前后端分离的项目,需要请求api接口,比如请求以下数据
- 获取首页的banner图(不分页,包含状态、开始时间、结束时间等)
- 获取商品信息(分页)
- 用户的订单信息(需要携带当前登录用户的标识进行查询)
- 用户的收货地址列表(需要携带当前登录用户的标识)
- 保存用户的收货地址、编辑用户的收货地址
此功能仅仅是快捷使用,不能包含事务操作,只能替代大多数建议的增删改查功能
请求路由
route目录下新增api.php,添加一下路由
Route::any('service/:_name_/[:_action_]', ApiRoute::class . '@dispatch')
->middleware(
AuthorizationMiddleware::class
);
访问地址:
{host}/service/{server_name}/{action}
携带service的请求无特殊说明均为服务请求
service/{server_name}/{action}说明如下:
路由值 | 说明 |
---|---|
service | 固定值,标记此路由地址是服务 |
server_name | 服务对象,可变,需约定 |
action | 服务行为,列表,参考下列说明 |
action说明
行为 | 请求方式 | content-type | 说明 |
---|---|---|---|
select | get | application/json | 请求数据,全部数据,不分页,一般为前后端都可以缓存的数据 |
paginate | get | application/json | 请求分页数据 |
detail | get | application/json | 数据详情,无特殊说明,参数为id=xxx |
create | post | application/x-www-form-urlencoded或者form-data | 数据新增 |
update | put | application/x-www-form-urlencoded或者form-data | 数据更新,无特殊说明,参数中需要携带id |
delete | delete | application/json | 数据删除,支持批量,id=1,2,3 |
配置服务请求
config目录下添加api.php
// ......省略其他配置
'service' => [
'user' => \app\service\UserService::class,
'goods' => \app\service\GoodsService::class,
'order' => \app\service\OrderService::class,
],
服务类需要继承ApiBaseService
用户权限验证
需要依赖firebase/php-jwt: ^6.11
magein\think\utils\service\Auth::user()->token($user,86400);