【问题标题】:pagination with search results in cakephpcakephp中搜索结果的分页
【发布时间】:2012-11-06 16:44:30
【问题描述】:

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

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

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')); 
  } 

我正在尝试弄清楚如何制作 分页记住我的搜索条件。感谢您的帮助。

【问题讨论】:

标签: cakephp cakephp-2.0


【解决方案1】:

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

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

【讨论】:

  • 太棒了!也为我工作。 :) +1
猜你喜欢
  • 2015-04-05
  • 2012-12-01
  • 2014-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-31
  • 1970-01-01
相关资源
最近更新 更多