请帮我如何在搜索结果中进行分页,我在这里发现了一些问题,但我仍然无法理解。
这就是我想做的事,
用户填写输入搜索,然后系统在分页中显示结果
如果用户点击分页链接,系统就会移动到 目标分页,没有任何关于搜索输入的信息。
我发现搜索条件在会话中保存但我不知道如何制作的信息。
我花了两天的时间来做到这一点,但仍然没有结果。答案 0 :(得分: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
,该属性已从控制器发送。最初是'';
答案 1 :(得分:0)
你应该真正研究一下搜索插件: https://github.com/dereuromark/search
它为您提供此功能,而无需重新发明轮子。 它还使用PRG等“最佳实践”方法,以及LIKE等易于扩展的搜索配置。