vscode+cline+deepseek开发一个fastadmin模块
原本任务表里的归属任务类型,期望是外键关联任务类型的的类型编码字段,而不是id的,这个会导致下拉选择的地方要调整比较多。先不上高难度了。归属任务类型,外键类型,外键关联任务类型的类型编码字段
生成DDL并执行
模块名称:项目管理,模块编码为:prodemo
提供如下的字段信息,参考如下的fastadmin数据设计规范 @url https://doc.fastadmin.net/doc/database.html 为每个表输出一份DDL SQL语句:
1、表名:项目,表名编码为:使用其英文
字段如下:
项目名称
项目描述
项目等级,枚举类型,包括:大型项目、中型项目、小型项目
项目负责人,外键类型
项目创建人,外键类型
项目状态,枚举类型,包括:立项中、进行中、已结算、已挂起
2、表名:任务类型,表名编码为:使用其英文
字段如下:
类型名称
类型编码
创建人,外键类型
3、表名:任务,表名编码为:使用其英文
字段如下:
任务名称
任务描述
归属项目,外键类型
归属任务类型,外键类型
任务处理人,外键类型
任务创建人,外键类型
任务状态,枚举类型,包括:处理中、已完成、已关闭、已挂起
每个表还有如下通用的要求:
1、表名编码采用英文小写,不要出现下划线,如果是多个单词,就取两个单词连接起来
1、表名格式为:fa_{模块编码}_{表名编码}
2、以上字段如果为枚举类型,枚举值要翻译为因为,都增加注释,格式类似:“状态:0=隐藏,1=正常,2=推荐”
时间
3、时间类型 为datetiem
4、字段增加如下字段,值允许为空:权重weigh, 创建时间createtime,更新时间updatetime,删除时间deletetime
5、外键字段,字段命名格式类似:admin_id
6、整数类型 int(10)
7、同时生成5条测试数据,权重weigh字段的值要由1开始递增
8、如果字段没有明确说明允许为空,默认就是不能为空
9、外键类型不要生成外键DDL
生成CRUD命令并自动执行
内容已经隐藏, 输入“粉丝邀请码”查看。感谢支持原创内容,期待您关注B站“写代码的产品飞哥”,关注后私信up主发送“粉丝邀请码”,马上回复哦。如果已经获取“粉丝邀请码”, 绑定粉丝邀请码
学习如下的知识
学习fastadmin代码结构知识:
fastadmin 的crud命令生成的文件,文件存放规则如下:
html文件:{站点根目录文件夹}/application/admin/view/{模块名称}/{表名}/
controller文件:{站点根目录文件夹}/application/admin/controller/{模块名称}/{表名}.php
model文件:{站点根目录文件夹}/application/admin/model/{模块名称}/{表名}.php
js文件:{站点根目录文件夹}/public/assets/js/backend/{模块名称}/{表名}.js
其中,站点根目录文件夹是指think.exe所在的目录.
以下要找对应的文件就按上面的规则去找,例如模块名称为:studycase,表名为:task(不需要体现表名前缀部分fa_),那么controller文件就是:{站点根目录文件夹}/application/admin/controller/studycase/Task.php
调整model时间戳的数据类型
每个CRUD命令生成的每个model文件里,将里面的$autoWriteTimestamp 改为“datetime”,并增加这行:protected $dateFormat = 'Y-m-d H:i:s';
调整项目处理人外键相关
上面使用CRUD命令生成“项目”的controller、model、js文件里,有如下几点要调整:
1、修改html,针对生成的新增或修改表单html的字段代码,在页面上不要显示更新人、创建人字段。其他的与人员相关的字段需要保留,调整为:data-source="auth/admin/index" data-field="nickname"。
2、修改model,如何存在XX处理人或者XX创建人或者其他与人员相关的字段,要增加和Admin的“belongsTo”关系。Admin对应的模型为:app\admin\model\Admin。由于可能存在多个字段和admin有相同的关系,函数命名要区分开来。
3、修改controller,查询列表的语句,采用与预加载的方式->with(['XXX']),其中XXX为model新创建的函数名。期望是在index的这个查询列表方法里来做这个调整。
4、修改js,如何存在XX处理人或者XX创建人或者其他与人员相关的字段,针对生成的列表的js里对应的字段,要显示为人员的nickname,而不是显示人员id
5、修改model,如果存在创建人或更新人字段,保存数据时分别自动填充值,可以在模型的更新前或插入前事件中实现,获取当前的登录用户的id来填充,在init方法实现来实现。
调整任务的处理人外键相关
上面使用CRUD命令生成“任务”的controller、model、js文件里,有如下几点要调整:
1、修改html,针对生成的新增或修改表单html的字段代码,在页面上不要显示更新人、创建人字段。其他的与人员相关的字段需要保留,调整为:data-source="auth/admin/index" data-field="nickname"。
2、修改model,如何存在XX处理人或者XX创建人或者其他与人员相关的字段,要增加和Admin的“belongsTo”关系。Admin对应的模型为:app\admin\model\Admin。由于可能存在多个字段和admin有相同的关系,函数命名要区分开来。
3、修改controller,查询列表的语句,采用与预加载的方式->with(['XXX']),其中XXX为model新创建的函数名。期望是在index的这个查询列表方法里来做这个调整。
4、修改js,如何存在XX处理人或者XX创建人或者其他与人员相关的字段,针对生成的列表的js里对应的字段,要显示为人员的nickname,而不是显示人员id
5、修改model,如果存在创建人或更新人字段,保存数据时分别自动填充值,可以在模型的更新前或插入前事件中实现,获取当前的登录用户的id来填充,在init方法实现来实现。
调整任务类型的处理人外键相关
上面使用CRUD命令生成“任务类型”的controller、model、js文件里,有如下几点要调整:
1、修改html,针对生成的新增或修改表单html的字段代码,在页面上不要显示更新人、创建人字段。其他的与人员相关的字段需要保留,调整为:data-source="auth/admin/index" data-field="nickname"。
2、修改model,如何存在XX处理人或者XX创建人或者其他与人员相关的字段,要增加和Admin的“belongsTo”关系。Admin对应的模型为:app\admin\model\Admin。由于可能存在多个字段和admin有相同的关系,函数命名要区分开来。
3、修改controller,查询列表的语句,采用与预加载的方式->with(['XXX']),其中XXX为model新创建的函数名。期望是在index的这个查询列表方法里来做这个调整。
4、修改js,如何存在XX处理人或者XX创建人或者其他与人员相关的字段,针对生成的列表的js里对应的字段,要显示为人员的nickname,而不是显示人员id
5、修改model,如果存在创建人或更新人字段,保存数据时分别自动填充值,可以在模型的更新前或插入前事件中实现,获取当前的登录用户的id来填充,在init方法实现来实现。
--B站/抖音:写代码的产品飞哥
--分享运营真实案例,用编程创造自己的产品