关于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类里了,只需要去父类复制一下在控制器里重写就可以了,是不是很简单?

发表回复

您的电子邮箱地址不会被公开。