找到下拉关联id要查询的那个控制器,然后index方法下面有一个:
9sy8hLN7TpA18xEJvocgCQ==
//如果发送的来源是Selectpage,则转发到Selectpage
if ($this->request->request('keyField')) {
return $this->selectpage();
}
*如果查询的那个控制器没有index方法,就去admin/libary/traits/Backend.php里去复制一个index方法到查询的那个控制器当中
把return $this->selectpage();干掉,然后自己写查询数据返回,返回的变量需要有list和total,list是数据,total是条数,再加上模糊查询和编辑时候的默认选中,另外你还可以修改展示的名称,以下是参考的写法:
/kUvQveoFFXdt5pZ66HAew==
if ($this->request->request('keyField')) {
#定义空数组
$b = array();
#判断是否有手动输入的查询名称
if(!$this->request->request('name')){
#条件为true
$where = 1;
}else{
#like模糊查询
$where = "name like"."'%".$this->request->request('name')."%' or id like"."'%".$this->request->request('name')."%'";
}
$a['list'] = db::name('goods')->where($where)->page($this->request->request('pageNumber'),10)->select();
$a['total'] = db::name('goods')->where($where)->count();
#判断是否有值,有值则为打开编辑时默认返回的,没有值的时候是添加点击事件传过来的
if($this->request->request('keyValue')){
$a['list'] = db::name('goods')->where(['id'=>$this->request->request('keyValue')])->find();
$b['list'][0] = $a['list'];
}else{
foreach($a['list'] as $k=>$v){
$b['list'][$k] = $v;
}
#分页条数
$b['total'] = $a['total'];
}
foreach($b['list'] as $k=>$v){
#返回的是name,这里可以自定义返回的内容
if($v['activeswitch']==1){
$b['list'][$k]['name'] = '商品ID:'.$v['id'].'---商品名称:'.$v['name'].'---类型:活动专属';
}else{
$b['list'][$k]['name'] = '商品ID:'.$v['id'].'---商品名称:'.$v['name'].'---类型:普通商品';
}
}
#返回下拉数据
return $b;
}
$this->request->request(‘keyField’)中的keyField只是一个参数,你可以打开f12然后点击下拉的时候看headers最下面传的参数,有好几个,包括keyField、name、keyValue等等.
+YEz/wFW7tDssJ1L3HgSbA==
效果图: