fastadmin在一鍵curd時(shí)會(huì)將后綴為_id的字段識(shí)別為表外鍵,在新增記錄時(shí)無論填入任何值都和報(bào)錯(cuò)“xxx_id不能為空”,這是因?yàn)閒astadmin將其識(shí)別為了外鍵在add.html語(yǔ)句中這個(gè)字段的input是這樣的:
Markup
<inputid="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是我加上去的,這個(gè)字段的默認(rèn)值就是name
以下摘自fastadmin文檔
FastAdmin中的動(dòng)態(tài)下拉列表使用的是優(yōu)秀強(qiáng)大的Selectpage插件來支持,F(xiàn)astAdmin對(duì)其進(jìn)行了二次開發(fā)。
下面介紹一個(gè)最基礎(chǔ)的動(dòng)態(tài)下拉列表示例,如下
其中需要給元素class添加一個(gè)selectpage,其次需要增加一個(gè)data-source="category/selectpage"這個(gè)屬性,category/selectpage為我們控制器提交列表的方法
FastAdmin的Selectpage列表中顯示字段默認(rèn)讀取的是name字段,如果我們返回的列表中不包含name字段,將無法展現(xiàn)下拉列表數(shù)據(jù)。此時(shí)我們需要添加使用data-field="你要顯示的字段"即可。
FastAdmin的Selectpage列表中主鍵字段默認(rèn)讀取的是id字段,如果我們的主鍵不是id字段,則我們可以添加并使用data-primary-key="你的主鍵ID字段"來修改。
所以這里需要將data-field?設(shè)置為正確的字段,這樣就能正常顯示了。
如果需要修改一鍵curd生成的代碼,則需要找到相關(guān)代碼,下面列一下相關(guān)代碼的位置:
列表展示代碼: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文件
如需修改服務(wù)端代碼打開對(duì)應(yīng)的控制器修改就行了,打開之后發(fā)現(xiàn),咦?怎么只有一個(gè)index方法,add方法和edit方法去哪里了?不要怕,add方法和edit方法都在父類Backend類里了,只需要去父類復(fù)制一下在控制器里重寫就可以了,是不是很簡(jiǎn)單?