0

您好,我的分页器有点问题,我想使用一些自定义 SQL 请求,但是每次我单击分页器链接时,它都会在没有自定义请求的情况下加载我的模型

我在通过 GET 方法发送的表单上输入信息:

$view->grid->js()->reload(array("From" => 
  $form->get("From"),"To" => $form->get("To"),"SSID" => $form->get("SSID")))
  ->execute();

在我看来,我有:

  $this->request=$this->api->db->dsql();        
  $this->grid=$this->add('Grid');
  $this->grid->setModel('Systemevents',array('ID','ReceivedAt','Message'));
  $this->grid->addPaginator(10);

  if (isset($_GET["SSID"])) {
     $this->ssid = $_GET["SSID"];       
  }
  if (isset($_GET["From"])) {
     $this->from = $_GET["From"];           
  }
  if (isset($_GET["To"])) {
     $this->to = $_GET["To"];            
  }

   $this->grid->dq->where($this->requette->expr('Message like "%.% ' 
        . $this->ssid . ' % src=%"'))
        ->where($this->requette->expr("ReceivedAt >= '".$this->from. "' 
          AND ReceivedAt <= '".$this->to."'"));

问题是当我使用分页器更改页面时 where 条件消失了。

4

2 回答 2

0

我没有找到任何解决我的问题的方法,所以我做了一些不同的事情

我在网格中添加了两个按钮,允许我更改 sql 请求的限制。

如果限制为 0,则隐藏上一个按钮。

现在我必须找到如何计算行数(从'SystemEvents' where ....中选择计数('ID'))并将其存储在一个变量中。

于 2013-04-25T07:39:25.143 回答
0

最后的最终解决方案是:

if ((isset($_GET["SSID"])) || (isset($_GET["From"])) || (isset($_GET["To"]))) { 
//GET Method from Recherche.php

  $this->ssid     = ($_GET["SSID"]    == "null" ? null : $_GET["SSID"]);
  $this->api->stickyGET("SSID"); // the solutiuon is here
  $this->from     = ($_GET["From"]    == "null" ? null : $_GET["From"]);            
  $this->api->stickyGET("From"); // <===== the solutiuon is here         
  $this->to       = ($_GET["To"]      == "null" ? null : $_GET["To"]);
  $this->api->stickyGET("To"); // <===== the solutiuon is here 

}
于 2013-04-29T14:47:36.957 回答