magein/think-utils

个人开发中使用thinkphp框架常用的工具类

v3.0.0 2025-08-15 08:39 UTC

This package is auto-updated.

Last update: 2025-08-15 08:44:13 UTC


README

gitee

composer

更新日志

简介

  1. 使用thinkphp框架开发习惯使用到的基础类
  2. 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接口,比如请求以下数据

  1. 获取首页的banner图(不分页,包含状态、开始时间、结束时间等)
  2. 获取商品信息(分页)
  3. 用户的订单信息(需要携带当前登录用户的标识进行查询)
  4. 用户的收货地址列表(需要携带当前登录用户的标识)
  5. 保存用户的收货地址、编辑用户的收货地址

此功能仅仅是快捷使用,不能包含事务操作,只能替代大多数建议的增删改查功能

请求路由

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说明
selectgetapplication/json请求数据,全部数据,不分页,一般为前后端都可以缓存的数据
paginategetapplication/json请求分页数据
detailgetapplication/json数据详情,无特殊说明,参数为id=xxx
createpostapplication/x-www-form-urlencoded或者form-data数据新增
updateputapplication/x-www-form-urlencoded或者form-data数据更新,无特殊说明,参数中需要携带id
deletedeleteapplication/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);