CakePHP で get 送信されたパラメータを引き継ぐ pagination のやり方
検索フォームは昔から method="get" と決まってる(独断と偏見)
CakePHP の場合ページングには PaginatorHelper を使って行います。
GETパラメータをうまく引き継ぐ方法がわからないので、
一応こうやってみたというもの。
うまい方法あれば教えていただきたい。
CakePHP は 1.3.9 です。
検索フォーム
IndexController::index()
Viewのページング部分
見てもらえればわかるとおもうんですけど、
? の所に詰め込んでる感がある・・・。
ベストプラクティスが知りたい今日この頃です。
CakePHP の場合ページングには PaginatorHelper を使って行います。
GETパラメータをうまく引き継ぐ方法がわからないので、
一応こうやってみたというもの。
うまい方法あれば教えていただきたい。
CakePHP は 1.3.9 です。
検索フォーム
IndexController::index()
class IndexController extends AppController
{
var $paginate = array(
'limit' => 100,
);
function index()
{
$q = (isset($this->params['url']['q'])) ? $this->params['url']['q'] : '';
$conditions = array(
'columns LIKE ?' => $q . '%',
);
$query_string = $this->params['url'];
unset($query_string['url']);
$this->set(array(
'rows' => $this->paginate('Model', $conditions),'
'q' => $q,
'query_string' => http_build_query($query_string),
));
}
}
Viewのページング部分
//ここポイント
options(array('url' => array('?' => $query_string)));?>
Paginator->prev('<<', array(), null, array('class'=>'disabled'));?>
Paginator->numbers(array('separator' => ''));?>
Paginator->next('>>', array(), null, array('class' => 'disabled'));?>
見てもらえればわかるとおもうんですけど、
? の所に詰め込んでる感がある・・・。
ベストプラクティスが知りたい今日この頃です。