(一)背景介绍
通常我们功能模块的创建需要分别创建
控制器
、模型
、表
、路由
等功能的代码十分麻烦,但是在CatchAdmin中我们可以通过设置
—生成代码
一键生成规范的Restful Api
格式所需要的相关控制器、模型等代码。如何操作呢?
(二)操作步骤
2.1 创建模块
创建模块过后会自动生成相关模块功能的注册服务相关文件
2.1.1 标序释义:
- ① 模块名称和 ② 模块目录英文命名并且小写
- ③ 模块描述:建议英文描述
- ④ 模块关键字:建议与 ① 和 ② 相同
- ⑤ Request目录:主要用于请求验证类存储目录(可选项)
2.1.2 生成文件
2.2 创建模型与控制器
2.2.1 标序释义:
- ① 模块: 为创建的模块名称
- ② 表名: 命名英文,多个单词用下划线连接
- ③ 模型和④控制名需要统一英文名称,多个英文字母采用首字母大写
- ⑤ Resultful路由:选择后控制器中会自动生成
index
、save
、read
、update
、delete
五个方法 - 常用字符串类型: ⑥
varchar
(字符长度小)、⑨text
(文章类) - 常用数字类型: ⑦
int
(年龄或者统计数量)、bigint
(上百亿数据量设计占用)、float
、decimal
(金融)、⑧tinyint
(有限个数比如类型) ⑩数字类型
需要默认0
- 选中
created_at&updated_at
:创建表后自动添加,存储类型为时间戳(单位s) - 选中
deleted_at
:创建表后自动添加,默认0为未删除,框架中的软删除则自动填充删除时间 - 选中
creator_id
:创建者ID,当用户登录后,只要操作增删改操作,框架会自动记录创建者ID - 选中
InnoDB
:MyISAM
引擎优于InnoDB
引擎
2.2.2 生成效果
执行成功后,将生成控制器
User
、表迁移文件20220121205721_slg_user_info.php
、模型User.php
、route.php
新增resource路由(支持resultful api
)
<?php
$router->group(function () use($router) {
// user 路由
$router->resource('user', catchAdmin\user\controller\User::class);
})->middleware('auth');
2.3 自定义URL
根据
User
模块,我们可以在相应模型、控制器、路由进行自定义功能
。
2.3.1 自定义模型
/**
* @param int $id
* @param array $params
* @return bool
*/
public function setStatus(int $id, array $params): bool
{
return $this->updateBy($id, [
'status' => $params['status']
]);
}
2.3.2 自定义控制器
// 自定义控制器方法:设置用户状态
public function setStatus($id,Request $request) : \think\Response
{
return CatchResponse::success($this->articlesModel->setStatus($id,$request->post()));
}
2.3.3 自定义路由规则
$router->group(function () use($router) {
// user 路由
$router->resource('user', catchAdmin\user\controller\User::class);
// ---新增设置状态---
$router->post('setStatus/<id>', 'catchAdmin\user\controller\User@setStatus');
})->middleware('auth');