关于fastadmin数据库后缀为_id的字段
fastadmin在一键curd时会将后缀为_id的字段识别为表外键,在新增记录时无论填入任何值都和报错“xxx_id不能为空”,这是因为fastadmin将其识别为了外键在add.html语句中这个字段的input是这样的:
<input id="c-xxx_id" data-rule="required" data-source="xxx/index" class="form-control selectpage" data-field="name" name="row[xxx_id]" type="text" value="">
其中data-field是我加上去的,这个字段的默认值就是name
以下摘自fastadmin文档
FastAdmin中的动态下拉列表使用的是优秀强大的Selectpage
插件来支持,FastAdmin对其进行了二次开发。
下面介绍一个最基础的动态下拉列表示例,如下
<input id="c-name" data-rule="required" data-source="category/selectpage" class="form-control selectpage" name="row[name]" type="text" value="">
其中需要给元素class添加一个selectpage
,其次需要增加一个data-source="category/selectpage"
这个属性,category/selectpage
为我们控制器提交列表的方法
FastAdmin的Selectpage列表中显示字段
默认读取的是name
字段,如果我们返回的列表中不包含name
字段,将无法展现下拉列表数据。此时我们需要添加使用data-field="你要显示的字段"
即可。
FastAdmin的Selectpage列表中主键字段
默认读取的是id
字段,如果我们的主键不是id
字段,则我们可以添加并使用data-primary-key="你的主键ID字段"
来修改。
所以这里需要将data-field 设置为正确的字段,这样就能正常显示了。
如果需要修改一键curd生成的代码,则需要找到相关代码,下面列一下相关代码的位置:
列表展示代码:fastadmin目录\public\assets\js\backend\控制器名.js js文件里面主要以js代码的形式展示列表,用的是bootstrap-table
新增记录代码:fastadmin目录\application\admin\view\控制器名\add.html html文件
修改记录代码:fastadmin目录\application\admin\view\控制器名\edit.html html文件
展示记录代码:fastadmin目录\application\admin\view\控制器名\index.html html文件
如需修改服务端代码打开对应的控制器修改就行了,打开之后发现,咦?怎么只有一个index方法,add方法和edit方法去哪里了?不要怕,add方法和edit方法都在父类Backend类里了,只需要去父类复制一下在控制器里重写就可以了,是不是很简单?