1、封装转换方法
/*
* 修改筛选请求字段名称
* @param String $old 请求的字段名称
* @param String $new 需要修改的字段名称
*/
public function changeName($old, $new)
{
$f = json_decode($_GET['filter'], true);
// @符屏蔽错误,偷懒没写验证
@$s = $f[$old];
$res = [];
if ($s != '') {
unset($f[$old]);
$f[$new] = $s;
$_GET['filter'] = json_encode($f);
}
$res["filter"] = json_encode($f);
$f = json_decode($_GET['op'], true);
@$s = $f[$old];
if ($s != '') {
unset($f[$old]);
$f[$new] = $s;
$_GET['op'] = json_encode($f);
}
$res["op"] = json_encode($f);
$this->request->get($res);
}
2、代码调用
//如果发送的来源是Selectpage,则转发到Selectpage
if ($this->request->request('keyField')) {
return $this->selectpage();
}
// 此处将筛选请求中有争议的字段"name"指定为tableA中的name
$this->changeName("match_id", "zp_match_spot_repair.match_id");
list($where, $sort, $order, $offset, $limit) = $this->buildparams();