在FastAdmin中可以快速的一键生成CRUD,自动生成后台的控制器、模型、视图、JS、语言包、菜单、回收站等。
在数据库中默认有一个fa_test
数据表可供参考,也可新建一个数据表,编辑好表字段结构,并且一定写上字段注释
和表注释
,相关数据表字段的设计要求可以参考数据库章节。FastAdmin在生成CRUD时会根据字段属性
、字段注释
、表注释
自动生成语言包、组件和排版。
温馨提示
主键
,不支持复合主键
。下面以 fa_test
数据表为例,打开命令行控制台进入到你的站点根目录,也就是think
文件所在的目录,进行执行命令。
//生成fa_test表的CRUD
php think crud -t test
//生成fa_test表的CRUD且一键生成菜单
php think crud -t test -u 1
//删除fa_test表生成的CRUD
php think crud -t test -d 1
//生成fa_test表的CRUD且控制器生成在二级目录下
php think crud -t test -c mydir/test
//删除fa_test表生成的二级目录的CRUD
php think crud -t test -c mydir/test -d 1
//生成fa_test_log表的CRUD且生成对应的控制器为testlog
php think crud -t test_log -c testlog
//生成fa_test表的CRUD且对应的模型名为testmodel
php think crud -t test -m testmodel
//生成fa_test表的CRUD且生成关联模型category,外链为category_id,关联表主键为id
php think crud -t test -r category -k category_id -p id
//生成fa_test表的CRUD且所有以list或data结尾的字段都生成复选框
php think crud -t test --setcheckboxsuffix=list --setcheckboxsuffix=data
//生成fa_test表的CRUD且所有以image和img结尾的字段都生成图片上传组件
php think crud -t test --imagefield=image --imagefield=img
//关联多个表,参数传递时请按顺序依次传递,支持以下几个参数relation/relationmodel/relationforeignkey/relationprimarykey/relationfields/relationmode
php think crud -t test --relation=category --relation=admin --relationforeignkey=category_id --relationforeignkey=admin_id
//生成v_phealth_db2数据库下的fa_test表的CRUD
php think crud -t test --db=v_phealth_db2
-t, --table=TABLE 表名,带不带表前缀均可
-c, --controller[=CONTROLLER] 生成的控制器名,可选,默认根据表名进行自动解析
-m, --model[=MODEL] 生成的模型名,可选,默认根据表名进行自动解析
-i, --fields[=FIELDS] 生成的数据列表中可见的字段,默认是全部
-f, --force[=FORCE] 是否覆盖模式,如果目标位置已经有对应的控制器或模型会提示
-l, --local[=LOCAL] 是否本地模型,默认1,置为0时,模型将生成在common模块下
-r, --relation[=RELATION] 关联模型表名,带不带表前缀均可
-e, --relationmodel[=RELATIONMODEL] 生成的关联模型名,可选,默认根据表名进行自动解析
-k, --relationforeignkey[=RELATIONFOREIGNKEY] 表外键,可选,默认会识别为使用 模型_id 名称
-p, --relationprimarykey[=RELATIONPRIMARYKEY] 关联模型表主键,可选,默认会自动识别
-s, --relationfields[=RELATIONFIELDS] 关联模型表显示的字段,默认是全部
-o, --relationmode[=RELATIONMODE] 关联模型,hasone/belongsto/hasmany [default: "belongsto"](v1.3+ 增加了 hasmany)
-d, --delete[=DELETE] 删除模式,将删除之前使用CRUD命令生成的相关文件
-u, --menu[=MENU] 菜单模式,生成CRUD后将继续一键生成菜单
--db[=key] 多数据库支持(参数为tp5中配置的数据库key 在application\config.php添加数据库配置信息)
--setcheckboxsuffix[=SETCHECKBOXSUFFIX] 自动生成复选框的字段后缀
--enumradiosuffix[=ENUMRADIOSUFFIX] 自动生成单选框的字段后缀
--imagefield[=IMAGEFIELD] 自动生成图片上传组件的字段后缀
--filefield[=FILEFIELD] 自动生成文件上传组件的字段后缀
--intdatesuffix[=INTDATESUFFIX] 自动生成日期组件的字段后缀
--switchsuffix[=SWITCHSUFFIX] 自动生成可选组件的字段后缀
--citysuffix[=CITYSUFFIX] 自动生成城市选择组件的字段后缀
--selectpagesuffix[=SELECTPAGESUFFIX] 自动生成Selectpage组件的字段后缀
--ignorefields[=IGNOREFIELDS] 排除的字段
--editorclass[=EDITORCLASS] 自动生成富文本组件的字段后缀
--headingfilterfield[=HEADINGFILTERFIELD] 自动生成筛选过滤选项卡的字段,默认是status字段
--sortfield[=SORTFIELD] 排序字段
php think crud -t test_log -c testlog
将会生成testlog这个控制器,同理如果你的普通表想生成带层级的控制器则可以使用php think crud -t test -c mydir/test
。fa_test
表用于测试CRUD能支持的字段名称和类型,请直接使用php think crud -t test
生成查看。deletetime
字段,且默认值必须为null
,这样在一键CRUD时将自动生成回收站的功能,如果deletetime
默认值为0
,数据将默认进入回收站。fa_user/fa_auth_rule/fa_auth_group/fa_auth_group_access/fa_admin/fa_admin_log/fa_admin/fa_user_group/fa_user_rule
等框架核心表进行CRUD,否则原有的框架后台功能将无法正常使用。category_id
字段,会将表名做为筛选条件,如对fa_test
表做CRUD
,则类型为test
,如对fa_test_copy
做CRUD
,则类型为test_copy
,务必前往常规管理
->系统配置
->字典配置
->分类类型
中添加上对应的类型,然后再到分类管理
录入数据后才会生效,否则在Selectpage
下拉时会为空。NULL
时,表单会自动追加必选required
验证。更多CRUD一键生成可使用的参数请使用php think crud --help
查看。