# think-utils **Repository Path**: magein/think-utils ## Basic Information - **Project Name**: think-utils - **Description**: thinkphp6~开发常用的命令行,模型基类 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-12-04 - **Last Updated**: 2025-08-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ThinkPHP6 Development Utils [gitee](https://gitee.com/magein/think-utils) [composer](https://packagist.org/packages/magein/think-utils) [更新日志](./change.log.md) ### 简介 1. 使用thinkphp框架开发习惯使用到的基础类 2. api接口服务响应 ### MainModel说明 #### 快捷查询 Models下面的模型继承MainModel享有额外的查询功能 ```php /** * @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); ``` #### 快捷方法 检索并且创建 ```php Order::firstOrCreate($where,$params) ``` 更新或者创建,会更新满足条件的所有数据 ```php Order::updateOrCreate($where,$params) ``` ### SoftModel说明 > 继承MainModel,数据进行软删除 ### api接口服务 #### 背景 前后端分离的项目,需要请求api接口,比如请求以下数据 1. 获取首页的banner图(不分页,包含状态、开始时间、结束时间等) 2. 获取商品信息(分页) 3. 用户的订单信息(需要携带当前登录用户的标识进行查询) 4. 用户的收货地址列表(需要携带当前登录用户的标识) 5. 保存用户的收货地址、编辑用户的收货地址 > 此功能仅仅是快捷使用,不能包含事务操作,只能替代大多数建议的增删改查功能 #### 请求路由 route目录下新增api.php,添加一下路由 ```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 ```php // ......省略其他配置 'service' => [ 'user' => \app\service\UserService::class, 'goods' => \app\service\GoodsService::class, 'order' => \app\service\OrderService::class, ], ``` 服务类需要继承ApiBaseService #### 用户权限验证 需要依赖firebase/php-jwt: ^6.11 ```php magein\think\utils\service\Auth::user()->token($user,86400); ```