使用url_suffix在codeigniter 2.1.0中分页不正常

时间:2012-01-30 15:24:10

标签: php mysql pagination codeigniter-2

我正在使用codeigniter 2.1.0和mysql数据库。在我的管理面板中,我有一个页面,我想向所有用户显示分页视图。但它不起作用。在尝试了很多事情后,这是我的更新代码
控制器:

function accounts() // controller to view all users
{
    $this -> load -> library('pagination');
    $config['base_url'] = site_url('admin/home/accounts/');
    $config['total_rows'] = $this->db->get('user')->num_rows();
    $config['per_page'] = 2;
    $config['num_links'] = 2;
    $config['full_tag_open'] = '<p id="pagination">';
    $config['full_tag_close'] = '</p>';
    $offset = $this->uri->segment(4,0);
    $this->pagination->initialize($config);
    $this->load->model('admin_model');
    $data['user_data']=$this->admin_model->all_user($config['per_page'],$offset);
    $data['links']=$this -> pagination -> create_links();
    $data['main_content']='admin/accounts';
    $this->load->view('includes/admin/admin_template',$data);
}

视图:

<?php foreach ($user_data as $data) {?>
<?php echo 'Name:' . ' ' ?>
<?php echo ($data['name']).'<br/>'; ?>
<?php echo 'E-mail:' . ' ' ?>
<?php echo ($data['email']).'<br/>'; ?>
<br />
<?php } ?>
<?php echo $links;?>

模型:

function all_user($per_page,$offset) //shows all uer info
{
    $query = $this->db->get('user', $per_page, $offset);
    $row=$query->result_array();
    return $row;
}

这是路线:

$route['default_controller'] = "site";
$route['404_override'] = '';
$route['admin']='admin/admin';


我已经使用.htaccess mod_rewrite删除了我的index.php和$ config ['url_suffix'] ='。html'来添加后缀.html,这使得网址看起来像这样{{{ 1}}而不是
'http://localhost/project/admin/home/accounts.html'
但如果我删除了config.php中的url_suffix

'http://localhost/project/index.php/admin/home/accounts'
分页工作正常。但我想使用url_suffix

*/

$config['url_suffix'] = '';

/*

但如果我这样做,分页不起作用,并显示404页面未找到错误。我该如何解决这个问题?

3 个答案:

答案 0 :(得分:5)

我在你的代码中看到了很多问题。但第一件事第一。

$this->uri->segment(4)

在您的查询中的偏移量。

更新:如果您尚未完成mod_rewrite,请将“index.php”添加到$config['base_url']

E.g。     $config['base_url']=base_url().'index.php/admin/....';

在上面的代码中添加您的路径。

答案 1 :(得分:3)

$config['base_url'] = site_url('admin/home/accounts');

在这一行中你最后需要一个背板,如

$config['base_url'] = site_url('admin/home/accounts/');

<强>更新

以您的方式将此添加到您的控制器

$data['links']=$this->pagination->create_links();

<强>更新 虽然我对codeigniter知之甚少,但这是一个疯狂的想法。

在您的型号和控制器之间切换。你确定你所谓的控制器是你的代码中的控制器吗?同样的模型问题。

<强>更新 我的道歉,你的基本网址应该是

$config['base_url'] = site_url('admin/home/accounts/index/');

答案 2 :(得分:0)

系统中的

- &gt; Pagination.php文件(默认设置)

class CI_Pagination {

var $base_url           = ''; // The page we are linking to
var $prefix             = ''; // A custom prefix added to the path.
var $suffix             = ''; // A custom suffix added to the path.
.
.
}

$ config ['suffix'] =“example”

你的分页的Url_suffix ..........