单击下一步按钮时分页不起作用

时间:2014-04-30 13:04:13

标签: cakephp

的Controler

public function search() {

$this->Paginator->settings = $this->paginate;

         $this->loadmodel('Usermgmt.User');
        if ($this->request -> isPost()) {
            $this->User->set($this->data);
            $keyword=$this->data['Doctors']['search'];
 //$this->loadmodel('Usermgmt.User');
 $cond=array('OR'=>array("User.username LIKE '%$keyword%'","User.email LIKE '%$keyword%'", "User.first_name LIKE '%$keyword%'", "User.last_name LIKE '%$keyword%'"));




 //$result = $this->paginate('User',array('conditions'=>$cond));
 $result = $this->paginate('User',array($cond));

  $this->set('result', $result);



        }

    }

查看

<?php                    
 if (!empty($result)) {   $sl=0;
                            foreach ($result as $row1) {

                            //print_r($row1);
                                $sl++; ?><div style="width:100%;display:inline-block;">

        <div style="float:left">

            <?php 
            //echo $row1['id'];
        echo $this->Html->link($this->Html->image('../files/user/photo/'.$row1 ['User']['photo_dir'].'/'.$row1 ['User']['photo'], array('width' => '180', 'height' => '180')),
                       array('controller'=>'Profiles','action'=>'index',$row1['User']['id']),
                       array('escape' => false));

                        ?>

       </div>
        <div>
        <?php echo h($row1['User']['first_name'])." ".h($row1['User']['last_name'])."</br>";
                                echo h($row1['User']['username'])."</br>";
                                echo h($row1['User']['email'])."</br>";
                                echo h($row1['User']['mobile'])."</br>";
                                echo h($row1['UserGroup']['name'])."</br>";

                                ?></div>
                                <div style="clear:both;"></div>


                                </div> 

                                <?php }?>
        <?php echo $this->Paginator->prev('previous'); ?>

<?php echo $this->Paginator->numbers(); ?>

<?php echo $this->Paginator->next('Next'); ?>                       

<?php }?>

这里搜索用户名或用户详细信息,如fname,电子邮件等,并在视图页面中显示

这里我输出的分页像1 2 3 4只有第一页显示当我点击显示空白页面的下一页时可能是$结果未设置如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

变量结果仅有时设置

if ($this->request->isPost()) {
    ...
    $result = $this->paginate('User',array($cond));
    $this->set('result', $result);
}

仅为POST请求设置变量结果 - 单击链接不是发布请求,因此结果变量未定义。

确保您对GET请求进行分页

有几种解决方案,但最简单的解决方案是&#34;如何对发布数据进行分页&#34;是不这样做。将搜索表单更改为使用GET,并确保在对请求进行分页时保持get参数。

控制器代码至少需要调用paginateset才能使视图中的变量存在,而不管控制器操作是如何到达的。