七、为什么添加和修改都不管用了?
这里的问题首先去看看数据库的表结构,看你的表结构是否有问题。
表结构不要设置为field_id结尾,这样的字段是不可以的。
直接暴力就是fieldId即可。
关于这块后期看一下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="">
八、列表字段显示的为英文
这个问题就很简单了,咔咔没有看源码理解就是语言包没有你设置的这个字段名。
直接打开到对应的js文件,然后修改初始化表格中的title值即可。
修改完之后就可以看到中文名了。
九、如何在一个模板上设置按钮,然后显示设置的表格
先看实现效果,点击回收站之后弹出一个表格。
那么如何给自己需要的模板设置同样的效果呢?
接下来就使用官方给的案例进行解读。
首先来到test的index模板中可以看到回收站的这个按钮。
这里需要注意这个herf的值,如果是自己自定义的按钮直接把title替换成自己设置的名字即可。
接着来到test的js模板,在这个js中你能看到出了index初始化表格外,还存在一个recyclebin这个方法。
如果你不想写直接把这个方法拿过去即可,但是一定要修改url地址哈!
但是此时做的这些修改远远还是不够的,还需要控制器,那么test的recyclebin的这个方法是在application/admin/library/traits/Backend.php这个文件里边。
如果你想设置你自己的方法,那么你需要在控制器新增加一个方法,然后把这个文件中的index方法代码复制过来即可。
既然有了控制器,有了js创建了表格,那么还缺什么呢!
还缺一个模板喽!创建一个跟你的方法名一样的html文件,然后随便复制一个index.html模板进去即可。
在复制的时候只留下这些代码,其余的就可以删除了,咔咔测试如果加上上边的代码会出现无法访问的情况。
html文件名的设置就跟下图一样
做完这些工作那就可以看到你想要的东西了。
实现步骤
在控制器Test中写需要显示列表的方法,例如display方法
创建了控制器就需要创建跟display方法对应的display.html模板文件
html模板文件的创建位置是在Test目录下
找到Test的js文件,然后添加display方法,这个方法不会写的话就直接使用案例中test.js中的recyclebin
然后就大功告成了
如果你还不会那么就只能私信咔咔了,哈哈
这里有个注意点就是如果你是用的test.js方法中的recyclebin,那么会存在一个问题就是操作的按钮问题。
这个按钮就是在recyclebin的初始化表格中设置的,自行设置即可。
也就是换换classname和名字即可。
修改完后的图,只要细心这个框架使用起来还是非常顺手的。
十、关于数据库字段设置为state查询条件没用
如果你发现你对state这个字段设置where条件后没有效果时,试着查询一条数据,然后看一下这个state类型
string(1) "1"
如果类型是上边打印的结果,那么你就要注意了,在查询条件中需要写上"1" ,也就是字符串1,而非整型1。
看到这里是不是恍然大悟,赶紧去改你的查询条件吧!
十一、设置的enum类型页面怎么是下拉框,不是单选框
如果你使用的enum类型,则会出现上的两种情况。
一种是下拉框,一种是单元框。
那么是什么原因造成的不一致呢?
请看上图,如果你想生成单元的形式,那就使用enum类型,字段名结尾使用data即可。
十二、发起ajax成功后如何实现刷新数据
这个过程你可以理解为用户上传了一个图片。
然后后台需要审核。
后台点击审核后,这条数据就需要移除,如果你发现数据未移除。
需要在对应的js文件上加上refresh:true即可。
在来说一下如何发起ajax请求,也是很简单将button的属性设置为btn-ajax即可。
本节关于fastadmin的实战问题到这里就结束了,如果你有其它的相关问题,可以私聊咔咔,也可以在评论区,咔咔看到会第一时间进行回复的。