2012-04-15 154 views
0

请帮助我如何在搜索结果中进行分页,我在这里发现了一些问题,但我仍然无法理解。分页+在cakephp中搜索

这是我想做的事情,

用户填写输入搜索后系统显示的结果分页

如果分页链接的用户点击,以便系统移动到 目标分页没有丢失任何关于搜索输入的信息。

我发现信息,搜索条件保存在会话中,但我不知道如何做到这一点。

我花了两天时间,但仍然没有结果。

回答

2
$search_keyword = $value_you_get_from_search_field || ''; 
$this->paginate = array(
    .... 
    'conditions' => array(
     'YOURMODEL.field LIKE' => '%' . $search_keyword . '%', // this condition will check for search value to corresponding field you want 
     ..... 
    ) 
); 

$search_results = $this->paginate(); // search result will contain query for your search with pagination 

要保持价值为搜索字段,你必须设置字段值,查看类似以下内容:

$this->set(compact('search_results', 'search_keyword')); 

而且你要设计你搜索领域像以下:

$this->Form->input('fieldname', array('type' => ...., 'value' => $search_keyword, ....)); 

通知在输入字段中,我将value属性设置为$search_keyword,该属性已从控制器发送。最初它是'';

0

你真的应该考虑的搜索插件: https://github.com/dereuromark/search

它为您提供了此功能,您无需推倒重来。 它也使用像PRG这样的“最佳实践”方法,以及LIKE等易于扩展的搜索配置。