动态下拉列表

FastAdmin中的动态下拉列表使用的是优秀强大的Selectpage插件来支持,FastAdmin对其进行了二次开发。下面介绍一个最基础的动态下拉列表示例,如下

  1. <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字段"来修改。

Selectpage所支持的扩展属性

属性功能示例
data-source提供数据源的URL地址data-source="category/index"
data-field列表显示读取的字段data-field="username"
data-primary-key列表选中后渲染的字段data-primary-key="uid"
data-pagination是否开启分页data-pagination="true"
data-page-size分页大小data-page-size="10"
data-multiple是否支持多选data-multiple="true"
data-max-select-limit最多可选择数量data-max-select-limit="3"
data-order-by排序字段data-order-by="id"
data-params自定义扩展参数data-params='{"custom[type]":"test"}'
data-select-only是否为只读模式data-select-only="true"

Selectpage的data-params支持function类型,如果需要动态传参(例如联动查询),则可以在JS中将data-params添加一个function处理即可FastAdmin在生成CRUD时会对包含下划线的字段默认生成动态下拉列表,比如user_id将自动生成data-source="user/index"默认读取的是idname字段,如果需要修改,请参考上方的参数修改方法。

data-params自定义扩展参数支持使用function动态返回数据,请在表单初始化之前使用,例如传递动态选择的类型

  1. $("#c-name").data("params", function (obj) { return {custom: {type: $("#c-type").val()}};});

更多的使用方法请参考Selectpage官方教程