2013-03-19 93 views
1

我有一個搜索輸入的表單:CakePHP的2 - 分頁超越第1頁不起作用

echo $this->Form->create('Job', array('url'=>array('controller'=>'jobs', 'action'=>'search'), 'action'=>'search', 'inputDefaults' => array('label' => false, 'div'=>false))); 
echo '<br/>'.$this->Form->input('search', array('label' => false, 'div'=>false)); 
echo $this->Form->submit('Search', array('div' => false)); 
在我的控制器

我有PAGINATE陣列像這樣:

public $paginate = array(
    'Job' => array(
     'fields' => array('Job.id', 'Job.name', 'Job.description', 'Job.tag_words'), 
     'limit' => 5, 
     'order' => array(
      'Job.name' => 'asc' 
     )), 
); 

,然後我的搜索功能是:

public function search() { 
if ($this->request->is('post')) { 
    $conditions = array(); 
    $search_terms = explode(' ', $this->request->data['Mix']['search']); 
    foreach($search_terms as $search_term){ 
     $conditions[] = array('Mix.name Like' =>'%'.$search_term.'%'); 
     $conditions[] = array('Mix.description Like' =>'%'.$search_term.'%'); 
     $conditions[] = array('Mix.tag_words Like' =>'%'.$search_term.'%'); 
    } 
    $searchResults = $this->paginate('Mix', array('Mix.published'=>1, 'OR' => $conditions)); 
    $this->set('searchResults', $searchResults); 
} 
} 

這適用於結果的第一頁,但在我看來,我有先前/去第二頁只是提出一個空白頁面。我該如何保留搜索詞並能夠轉到第二頁?

+1

您應該使用「獲取」表單執行搜索並將其包含在分頁鏈接中。我可能在某個地方有一個例子,但目前沒有在我的電腦上 – thaJeztah 2013-03-19 19:18:57

回答

0

的分頁程序::排序方法使用GET傳遞參數,你應該通過在您的視圖,然後讓搜索項,在打電話之前分頁鏈接試試這個:

$this->Paginator->options = array(
    'url' => $this->passedArgs 
); 

應該有您的搜索字詞會保留您的分頁鏈接。