【发布时间】:2015-02-05 01:38:59
【问题描述】:
我有一个博客页面,我尝试使用 CodeIgniter 对其进行分页。编号和限制似乎工作正常,除了当我尝试前往另一个页面时不断收到 404。
奇怪的是导致这个问题的正常罪魁祸首是正确的。 baseUrl 和 uri_segment。
我的控制器如下所示:
$config = array();
$config["base_url"] = $this->config->site_url("/blog");
$config["total_rows"] = $this->blog_model->count();
$config["per_page"] = 2;
$config["uri_segment"] = 2;
$config["num_links"] = round($config["total_rows"] / $config["per_page"]);
$config['use_page_numbers'] = TRUE;
$this->pagination->initialize($config);
$page = ($this->uri->segment(2)) ? $this->uri->segment(2) : 0;
$this->load->view('blog', array(
'user' => $this->user,
'blog' => $this->blog_model->loadPosts($config['per_page'], $page),
'links' => $this->pagination->create_links(),
'footer' => $this->blog_model->loadFooter()
));
然后在我的模型中,我正在抓取帖子
public function loadPosts($limit, $start)
{
$this->db->limit($limit, $start);
$this->db->order_by("date", "desc");
//this loads the contact info
$query = $this->db->get('entries');
return $query->result();
}
我的完整网址是www.mysite.com/blog,然后分页显示为www.mysite.com/blog/2。
对于 base_Url 我也试过base_url() . "/blog";。
我尝试将 uri_segment 设置为 1 和 3,但似乎没有任何效果。
我也尝试过使用路由并添加只是为了看看它是否会做任何事情:
$route['blog/(:num)'] = 'blog/$1';
【问题讨论】:
-
你不需要使用uri->segment。在您的控制器函数中设置一个参数,它将采用您的段的值。例如函数示例($page = 0)。这样不会出错。另外,删除你的路由规则,因为它什么都不做,以后可能会很棘手。
-
@AdrienXL 我正想尝试任何路线。一旦我看到它什么也没做,我就已经禁用它了。我总是不得不设置一个 uri_segment 并且我已经阅读了许多文章指出没有它分页将根本不起作用。如果不使用它,我将如何在控制器中进行设置?
标签: php codeigniter