CakePHP sayfalama ve get parametreleri

5 Cevap php

I have a problem with the pagination in my search page. When a user search something I have a url like domain.com/search/?s=keyword but paginator gives me links like domain.com/search/page:x, so in the next and prev and numbers page the get parameter is lost. I need to configure paginator to get links like domain.com/search/page:x/?s=keyword But I can't do this.

Ben nasıl yapılandırılacağı bilmek gerekir

$paginator->options();
$paginator->next();
$paginator->prev();
$paginator->numbers();

to get the needed efect. Thanx.

5 Cevap

seçenekler dizi oluşturun

$options = array(
    'url'=> array(
        'controller' => 'posts', 
        'action' => 'search', 
        '?' => 'keyword='.$keyword
     )
);

helper'a ayarlayın

$paginator->options($options)

GET değişkenleri koruyarak ve daha sonra paginator yardımcısı kullanabilirsiniz.

o yardımcı oldu umuyoruz :)

daha kolay sizin görünümünde veya $ paginator seçenekleri putl olabilir yapmak. CTP dosya

$this->Paginator->options['url']['?'] = $this->params['ur];

sonra istediğiniz değeri koymak :)

geçişli parametreleri için görünümünde deyimini kullanırken pagination

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

Bu parametreleri geçirmek için basit yoludur.

Bir süre $this->passedArgs o anda çalışan orada statik değer geçmek ve bu statik değeri ile deneyin.

$paginator->options(array('url' => array('a', 'b'))); 

Ben Matyas çözüm kullandı, ama $ anahtar kelime için ben böyle yaptım:

$queryString = explode('?', $_SERVER['REQUEST_URI']);
$options = array('url'=> array('controller' => 'post', 'action' => 'search', '?' => $queryString[1]));

Temelde böyle yapabilirsiniz:

function list_results($keywords)
  {
  $data = $this->paginate('Posts', array('Post.title LIKE' => '%'.$keywords.'%'));
  }

Giriş this comment.

Ben gayet iyi çalışıyor, bunu kullandı.

app_controller dosyasında:

function _paginatorURL() {
  $passed = "";
  $retain = $this->params['url'];
  unset($retain['url']);
  $this->set('paginatorURL',array($passed, '?' => http_build_query($retain)));
}

function beforeFilter()
{
  $this->_paginatorURL();
}

görünümlerinde dosyası:

  <?php $paginator->options = array( 'url' => $paginatorURL );?>

Umarım yardımcı olur.