加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

在cakephp中搜索结果的分页

发布时间:2020-12-13 17:42:59 所属栏目:PHP教程 来源:网络整理
导读:我已经实现了一个用户模型,我有一个简单的搜索表单 按性别,年龄,地点搜索.我正在使用分页器 对结果进行分页.问题是它只记得了 第一页上的搜索条件.当我点击第2页或下一页时 等等.它默认返回搜索所有用户. 这是我的控制器中的脏搜索代码,基本上它只是检查 提
我已经实现了一个用户模型,我有一个简单的搜索表单
按性别,年龄,地点搜索.我正在使用分页器
对结果进行分页.问题是它只记得了
第一页上的搜索条件.当我点击第2页或下一页时
等等.它默认返回搜索所有用户.

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

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'] 
                ),'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'] 
                ),'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),'order'=>'User.username'); 
    $this->set('users',$this->paginate('User')); 
  }

我正在试图弄清楚如何制作后续页面
分页记住我的搜索条件.谢谢你的帮助.

解决方法

$this->数据在第二页上为空,因为它是通过发布您的搜索表单(未发布到第二页)来填充的.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读