gpt4 book ai didi

cakephp - 在 cakephp 中使用搜索结果进行分页

转载 作者:行者123 更新时间:2023-12-04 23:58:54 25 4
gpt4 key购买 nike

我已经实现了一个用户模型,我有一个简单的搜索表单
按性别、年龄、地点搜索。我正在使用分页器
对结果进行分页。问题是它只记得
第一页上的搜索条件。当我点击第 2 页或下一页时
等等。它默认返回搜索所有用户。

这是我的 Controller 中的脏搜索代码,基本上它只是检查
提交的表单字段并对匹配的字段进行查询
用户表,然后分页结果:

if (!empty($this->data)) { 
// by name
if (!empty($this->data['User']['search_name'])) {
$this->paginate = array('conditions' => array('visible'=>1,
'OR'=>array(
'User.username LIKE' => '%'.$this->data['User']['search_name'].'%',
'User.firstname LIKE' => '%'.$this->data['User']['search_name'],
'User.lastname LIKE' => '%'.$this->data['User']['search_name'])
), 'limit'=>'10', 'order'=>'User.username');
}
// by gender
else if (!empty($this->data['User']['search_gender'])) {
$this->paginate = array('conditions' => array(
'visible'=>1,
'User.gender' => $this->data['User']['search_gender']
), 'limit'=>'10', 'order'=>'User.username');
}
// by state
else if (!empty($this->data['User']['search_state'])) {
$this->paginate = array('conditions' => array(
'visible'=>1,
'User.state' => $this->data['User']['search_state']
), 'limit'=>'10', 'order'=>'User.username');
}

// Send the results for the above criteria to the view
$results = $this->paginate('User');
$this->set('users', $results);

}
// Default retrieval of all users
else {
$this->paginate = array('conditions'=>array('visible'=>1),
'limit'=>'10', 'order'=>'User.username');
$this->set('users', $this->paginate('User'));
}

我想弄清楚如何制作后续页面
分页记住我的搜索条件。谢谢你的帮助。

最佳答案

$this->data在第二页上为空,因为它是通过发布您的搜索表单(不是发布到第二页)填充的。

将您的搜索表单帖子更改为 GET ( $this->Form->create('ModelName', array('type'=>'get') ) 并解析 $this->params而不是 $this->data

关于cakephp - 在 cakephp 中使用搜索结果进行分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13255548/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com