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

最後に、究極の解決策は次のことでした:

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 に答える