FastAdmin searchList 动态获取 | 我的日常分享

FastAdmin searchList 动态获取

FastAdmin searchList 动态获取

一、问题概述

对于searchList一般是通过手动定义固定的值。

1
{field: 'carrier', title: __('Carrier'), searchList: {"0":__('Carrier 0'),"1":__('Carrier 1'),"2":__('Carrier 2')}, formatter: Table.api.formatter.label}

或在控制器中模型中定义固定值在控制器中使用$this->assignconfig,将数据传到对应js中

控制器

1
$this->assignconfig("carrierList", $this->model->getCarrierList());

JS

1
{field: 'carrier', title: __('Carrier'), searchList: Config.carrierList, formatter: Table.api.formatter.label},

但是一般如果从数据库中动态获取列表这个就不行了

二、解决方式

在js中使用ajax请求,再将数据处理为指定格式。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//获取管理员数组列表
let adminList = {};
$.ajax({
url : "auth/Admin/index",
async : false,
success : function (obj) {
// console.log(obj);
for(let i=0;i<obj.total;i++){
adminList[obj.rows[i].id] = obj.rows[i].nickname;
}
console.log(adminList);
}
});
...
...
{field: 'operator', title: __('Operator'),searchList:adminList,formatter: Table.api.formatter.normal},