• 封装转换方法
  /*
  * 修改筛选请求字段名称
  * @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);
  }

  • 对应的控制器中调用
  //如果发送的来源是Selectpage,则转发到Selectpage
     if ($this->request->request('keyField')) {
     return $this->selectpage();
  }

  // 此处将筛选请求中有争议的字段"status"指定为school中的status
  $this->changeName("status", "school.status");

  list($where, $sort, $order, $offset, $limit) = $this->buildparams();