Codeigniter分页问题

时间:2013-11-16 07:53:24

标签: php codeigniter pagination

我正在尝试使用codeigniter进行分页。但我得到以下错误

严重性:注意 消息:未定义的偏移量:0 文件名:controllers / group.php

严重性:警告 消息:为foreach()提供的参数无效 文件名:views / group_list_view.php

以下是我的模型的代码

public function get_list($userid)  
{  
    $this->load->library('pagination');

    $config['base_url'] = 'http://localhost/portal/index.php/group/index';
    $config['total_rows'] =$this->db->where('UserId',$userid)->get('group')->num_rows();
    $config['per_page'] = 10;
    $config['num_links'] = 10;

    $this->pagination->initialize($config);

    $query['groups'] = $this->db->get('group', $config['per_page'], $this->uri->segment(3));
    return   $query;

}  

这是我的控制器的代码

class Group extends CI_Controller {

 public function __constructor()
 {
    session_start();
    parent::__constructor();
 }


 public function index()
 {
     if(!$this->session->userdata('userid'))
        redirect('login');

     $this->load->model('group_model');
     $result = $this->group_model->get_list($this->session->userdata('$userid'));

     //neither this works
     data['groups'] = $result;
     //nor this
     $data['groups'] = $result[0];

     $this->load->view('group_list_view', $data);
 }
}

这是视图中的代码

foreach($groups as $group){
                        echo $group->GroupId;
                    }

任何人都可以指导我在哪里做它。显然没有人似乎遇到任何这样的问题。我遵循了net.tutsplus同上的教程,但仍面临同样的问题。请注意我是PHP新手gentel:)

2 个答案:

答案 0 :(得分:1)

您需要在控制器中编写代码,而不是在模型

public function index()
{
    if(!$this->session->userdata('userid'))
        redirect('login');

     $this->load->library('pagination');

     $config['base_url'] = 'http://localhost/portal/index.php/group/index';
     $config['total_rows'] = // Use the same function to get the number of rows
     $config['per_page'] = 10;
     $config['num_links'] = 10;

    $this->pagination->initialize($config);

    $this->load->model('group_model');
    $result = $this->group_model->get_list($this->session->userdata('$userid'));
    data['groups'] = $result;    
    $this->load->view('group_list_view', $data);
}    

答案 1 :(得分:0)

下面:

$query['groups'] = $this->db->get('group', $config['per_page'], $this->uri->segment(3));

您正在将查询结果集分配给$query['group']

但在你正在做的控制器中

$data['groups'] = $result;

然后你迭代:

foreach($groups as $group){

您应该这样做:

foreach($groups['groups'] as $group){

由于您在模型中的原始作业是$query['groups']. 所以,要么在模型中为$query做出贡献,要么在视图中迭代正确的数组(就像我在上面展示的那样)