为什么Selectpage下拉列表在编辑时总是返回第一行的值?

有很多小伙伴都遇到过这个问题,那到底为什么会这样呢?是Selectpage的BUG,还是FastAdmin的BUG?其实都不是,这是因为你采用了自定义数据源导致未处理编辑时的数据导致的。我们都知道在FastAdmin中可以给input添加selectpage的class和data-source属性值后就可以使用动态下拉列表,但往往我们会忽略对编辑时的特殊处理。例如:通常情况下我们的数据源data-source="category/selectpage",当我们点击selectpage文本框时,请求的参数为:

Ujybk2LxCnIGSUWLHwecaw==
q_word[]: 名称
pageNumber: 1
pageSize: 10
andOr: AND
orderBy[0][]: name
orderBy[0][]: ASC
searchTable: tbl
showField: name
keyField: id
searchField[]: name
name: 名称

服务器返回的数据数据如下:

HhWIV8zIFuLE/HPOr/6d0Q==
{
    "total": 2,
    "list": [
        {
            "id": "1",
            "name": "名称1"
        },
        {
            "id": "2",
            "name": "名称2"
        }
    ]
}

我们的list数据是一个二维数组,返回以上数据在添加时使用时没有任何问题的。但是我们在进入编辑页面时,Selectpage会首先向category/selectpage这个链接请求一次当前编辑项所对应的数据。我们通过Chrome的开发者控制台中的Network中可以看到请求的参数是

pxqIAFwF+j0gyiH8Ki7ILA==
searchTable: tbl
searchKey: id
searchValue: 2
orderBy[0][]: name
orderBy[0][]: ASC
showField: name
keyField: id
keyValue: 2
searchField[]: name

比我们正常请求多了个keyValue,我们可以在我们的数据源data-source="category/selectpage"中判断下如果存在keyValue值时只返回与keyValue值有关联的数据,例如我们在category/selectpage中加个判断如下:

AlY7cymjJKKdBi8DLPzg9g==
if($this->request->request("keyValue")){
  return ['total'=>1, 'list'=>[
        ['id'=>2, 'name'=>'名称2']
    ]
  ];
}

通过以上判断后我们在编辑时就不会始终显示的是列表中的第一项数据了。同理如果我们启用了data-multiple="true"时,此时我们判断keyValue时应该只返回与之关联的多个数据。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

热门产品

触发修改文章时间【fastadmincms开发记录】|fastadmincms二次开发,触发,修改,文章,时间,fastadmin,ms,开发,记录
触发修改文章时间【fastadmincms开发记录】
在tp5中过滤输入的零宽度字符【fastadmincms开发记录】|fastadmincms二次开发,在tp5中,过滤,输入,的零,宽度,字符,fastadmin,ms,开发,记录
在tp5中过滤输入的零宽度字符【fastadmincms开发记录】
处理tag标签中的0宽空格【fastadmincms开发记录】|fastadmincms二次开发,处理,tag,标签,中的,0宽,空格,fastadmin,ms,开发,记录
处理tag标签中的0宽空格【fastadmincms开发记录】
添加专题时tags标签id出错【fastadmincms开发记录】|fastadmincms二次开发,添加,专题,时tags,标签,id,出错,fastadmin,ms,开发,记录
添加专题时tags标签id出错【fastadmincms开发记录】
20230518----模板 广告【fastadmincms开发记录】|fastadmincms二次开发,20230518,模板,广告,fastadmin,ms,开发,记录
20230518----模板 广告【fastadmincms开发记录】
cms添加视频模型【fastadmincms开发记录】|fastadmincms二次开发,ms,添加,视频,模型,fastadmin,开发,记录
cms添加视频模型【fastadmincms开发记录】
新增单篇收费复制功能【fastadmincms开发记录】|fastadmincms二次开发,新增,单篇,收费,复制,功能,fastadmin,ms,开发,记录
新增单篇收费复制功能【fastadmincms开发记录】
添加开会员折扣功能【fastadmincms开发记录】|fastadmincms二次开发,添加,开会,折扣,功能,fastadmin,ms,开发,记录
添加开会员折扣功能【fastadmincms开发记录】

历史上的今天:04月29日

热门专题

中源管业|中源管业,中源管业公司,中源管业有限公司,中源管业电话,中源管业地址,中源管业电力管,中源管业mpp电力管,中源管业cpvc电力管,中源管业pe穿线管
中源管业
综合高中|云南综合高中,昆明综合高中,综合高中能考本一吗,综合高中和普通高中的区别,综合高中是什么意思,综合高中能参加全国统一高考吗,综合高中可以考哪些大学,综合高中的学籍是什么
综合高中
昆明综合高中|昆明综合高中
昆明综合高中
云南高职单招|云南单招,云南单招网,云南高职单招网,云南高职单招,云南单招学校,云南单招培训
云南高职单招
大理科技管理学校|大理科技管理中等职业技术学校,大理市科技管理中等职业技术学校
大理科技管理学校
外贸网站建设|外贸网站建设,英文网站制作,英文网站设计,美国主机空间,外贸建站平台,多语言网站制作
外贸网站建设
小程序开发|微信小程序,小程序开发,小程序,小程序制作,微信小程序开发,小程序公司,小程序开发公司,分销,三级分销系统,分销系统
小程序开发
云南巨榕教育投资集团有限公司|云南巨榕教育投资集团有限公司,巨榕教育集团,巨榕教育
云南巨榕教育投资集团有限公司

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部