1、向ChatGPT发送指令
你能帮我根据我提供的内容生成mysql建表语句吗?表注释: 学生基础字段:id,guid(varchar255),create_time,create_user_guid,update_time,update_user_guid,delete_time,delete_user_guid业务字段: 名称,性别,年龄要求:1. 表名称根据表注释翻译为英文来命名2.create_time,create_user_guid,update_time,update_user_guid,delete_time,delete_user_guid 这些基础字段要放在业务字段之后3. 记住这个格式和要求与约束,之后我将输入这个格式,你来给我生成
2、效果
3、如何自定义
比如:我想给每个字段加上前缀
我要你在每个字段名前加上表名称再加上下划线
比如:我想定义一个格式类型,下次直接输入对应的格式
现在我需要你记住这个格式,下次我说我需要建表时,按照这个格式生成mysql建表语句:
表注释:您的表名
业务字段:您的业务字段
注意:您的表名和您的业务字设是我自定义的
4、根据表结构,生成 Think PHP6 代码
4.1 生成模型层
你能根据该表结构,给我生成一个 Think PHP6 的模型层代码吗?
如果想要贵公司指定框架的格式,我们也可以提供一个模板的格式给ChatGPT,然后一键替换内容, 达到我们想要的效果。
你能将刚刚的表结构根据我的提供的模型层模板,生成对应的模型层吗?
注意:将banner换成class
以下是我的模型层模板:
<?phpnamespace app\common\model\Banner;use app\common\arw\adjfut\src\Validate;
use app\BaseModel;
use think\model\concern\SoftDelete;
use app\Request;class Banner extends BaseModel
{use SoftDelete;// 删除字段protected $deleteTime = 'banner_delete_time';// 设置主键名protected $pk = 'banner_guid';// 设置废弃字段protected $disuse = [];// 设置字段信息protected $schema = ["banner_id" => "int","banner_guid" => "string","banner_img" => "string","banner_create_user_guid" => "string","banner_create_time" => "datetime","banner_update_user_guid" => "string","banner_update_time" => "datetime","banner_delete_user_guid" => "string","banner_delete_time" => "datetime",];// 设置json类型字段protected $json = [''];// 开启自动写入时间戳字段protected $autoWriteTimestamp = 'datetime';// 创建时间protected $createTime = 'banner_create_time';// 修改时间protected $updateTime = 'banner_update_time';/*** 新增前*/public static function onBeforeInsert(self $model): void{// self::checkRepeatData($model);$model->completeCreateField();}/*** 更新前*/public static function onBeforeUpdate(self $model): void{// self::checkRepeatData($model);$model->completeUpdateField();}/*** 删除前*/public static function onBeforeDelete(self $model): void{$model->completeDeleteField();}}
4.2 生成控制器
你能根据该表结构,给我生成一个 Think PHP6 的 带有 查询分页列表、添加、修改、删除 功能的控制器吗?注意:我不要模板渲染返回,我需要api接口的返回
同理,你只需要丢给他一个模板即可生成对应的符合我们要求的控制器
你能将刚刚的模型层根据我的提供的控制器模板,生成对应的控制器吗?
注意:将banner换成class
以下是我的控制器模板:
<?phpnamespace app\admin\controller\Banner;use app\BaseController;
use app\common\model\Banner\Banner as ModelBanner;
use app\Request;
use think\Validate;
use think\exception\ValidateException;
use think\facade\Filesystem;
use app\common\arw\adjfut\src\Excel;
use app\common\arw\adjfut\src\UploadFile;
use think\facade\Db;
use think\facade\Env;class Banner extends BaseController
{/*** 获取轮播图列表*/public function getBannerList(Request $request): array{$params = $request->param();$con = [];$query = ModelBanner::where($con);$select = self::pageWrapper($query)->field(['banner_id','banner_guid','banner_img'])->order('banner_update_time', 'desc')->select();$count = $query->count();return ['code' => 0,'data' => $select,'count' => $count,'msg' => 'ok'];}/*** 编辑轮播图*/public function editBanner(Request $request): array{$params = $request->param();$this->validate($params, ['banner_img|轮播图图片' => 'require']);$model = ModelBanner::where('banner_guid', $params['banner_guid'])->find();if (!$model) throwErrorMsg("该轮播图不存在", 1);$model->allowField(['banner_update_user_guid','banner_img'])->save($params);return ['code' => 0,'msg' => '编辑成功'];}/*** 添加轮播图*/public function addBanner(Request $request): array{$params = $request->param();$this->validate($params, ['banner_img|轮播图图片' => 'require']);$model = ModelBanner::create($params, ['banner_guid','banner_create_user_guid','banner_update_user_guid','banner_img']);return ['code' => 0,'msg' => '添加成功'];}/*** 删除轮播图*/public function deleteBanner(Request $request): array{$params = $request->param();$this->validate($params, ['banner_guid' => 'require',]);$banner = ModelBanner::where(['banner_guid' => explode(',', $params['banner_guid'])])->select();$banner->delete();return ['code' => 0,'msg' => "删除成功"];}
}