代码点火器分页给出404错误



你能帮我解决Codeigniter中的分页问题吗?我有一个列出书籍的视图。我写了一些代码,现在我看到了按钮,但内容并没有像我希望的那样受到限制。找不到代码有什么问题。

这是更新后的代码:控制器:

public function index($offset=0){
$config['base_url'] = 'http://localhost/myLibrary/books/index';
//$config['total_rows'] = 200;
$config['total_rows'] = $this->db->get('books')->num_rows();
$config['per_page'] = 1;
$config['uri_segment']= 3;
$config['attributes'] = array('class' => 'pagination-link');
$config['page_query_string'] = TRUE;
$this->pagination->initialize($config); 
$book_list = $this->Books_model->list_books();
$genre_list= $this->Books_model->list_genres();
$author_list= $this->Books_model->list_authors();
$view_data = array(
"book_list" => $book_list,
"genre_list" => $genre_list,
"author_list" => $author_list
);

$this->db->get('books', $config['per_page'], $this->uri->segment(3));
$start = isset($_GET['start']) ? $_GET['start'] : 0;
$book_list = $this->Books_model->list_books($start, $config['per_page']);

$this->load->view("book_list",$view_data); 
$this->load->library('pagination');
$this->load->library('table');
}

型号:

public function list_books($limit = FALSE, $offset = FALSE){
if($limit)
{
$this->db->limit($offset, $limit);
}
$list=$this->db->get("books")->result();
return $list;
}

视图:

<?php echo $this->pagination->create_links(); ?>

如果你能帮忙,我会很高兴,并提前感谢

除非此索引函数属于默认的站点控制器,否则不能将base_url((函数用作分页的base_url。

相反,将您的线路更改为:

$config['base_url'] = site_url('controller/method/');

此外,您的数据不受限制的原因是,您将启动参数作为false发送给模型

应该是:

$data['records'] = $this->Books_model->list_books($this->uri->segment(3), $config['per_page'], $offset);

通过查看代码,发送到视图文件的图书列表存储在$book_list变量中,因此为了限制返回的图书数量,请将行更改为:

$start = isset($_GET['start']) ? $_GET['start'] : 0;
$book_list = $this->Books_model->list_books($start, $config['per_page']);

并将其添加到您的分页配置数组:

$config['page_query_string'] = TRUE;

在你的模型函数中更改这一行:

$this->db->limit($limit, $offset);

收件人:

$this->db->limit($offset, $limit);

如CI文件中所述

$this->db->limit(10,20(;//生成:LIMIT 20,10(在MySQL中。其他数据库的语法略有不同(

查看此处以获取更多参考CI限制

同样需要注意的是,通过查看代码,$query$data['records']变量被分配了值,但从未被使用或传递到视图文件,因此它们不会执行任何

控制器中的索引方法现在应该是这样的:控制器:

public function index($offset=0){
$config['base_url'] = site_url('books/index');
//$config['total_rows'] = 200;
$config['total_rows'] = $this->db->get('books')->num_rows();
$config['per_page'] = 1;
$config['uri_segment']= 3;
$config['attributes'] = array('class' => 'pagination-link');
$config['page_query_string'] = TRUE;
$this->pagination->initialize($config); 
$start = isset($_GET['start']) ? $_GET['start'] : 0;
$book_list = $this->Books_model->list_books($start, $config['per_page']);
$genre_list= $this->Books_model->list_genres();
$author_list= $this->Books_model->list_authors();
$view_data = array(
"book_list" => $book_list,
"genre_list" => $genre_list,
"author_list" => $author_list
);
$this->load->view("book_list",$view_data); 
$this->load->library('pagination');
$this->load->library('table');
}

型号:

public function list_books($limit = FALSE, $offset = FALSE){
if($limit !== FALSE)
{
$this->db->limit($offset, $limit);
}
$list=$this->db->get("books")->result();
return $list;
}
$config['base_url'] = 'http://example.com/controller/index/page/'

尝试将索引添加为方法名称配置['base_url]。这样,无论何时创建分页url,它都包含方法名称。这是由于索引方法调用自动发生的,即我们不需要提及方法名称,但在分页url中,我们必须传递偏移量参数,我们必须使用完整的url。

相关内容

  • 没有找到相关文章

最新更新