我有一个方法news()
,它需要两个可选参数 - $category
& $slug
。
新闻页面需要显示所有未分类新闻文章的分页列表(类别页面(带有$category
集合)需要做同样的事情,但对于分类的子集)。
$category
因此,标准分页似乎不起作用,因为第二个URI段被视为news()
. 是否有可能解决这个问题,如果它不是整数,则可能将第二个 URI 段视为 $category 参数,或者如果它是分页参数?
以下是相关的代码片段:
控制器
function news($category = null, $slug = null) {
if($category == null) { // Get the standard "news" page
// Define the pagination config
$config = array();
$config['base_url'] = base_url() . 'news/';
$config['total_rows'] =$this->post_model->count_posts('NWS');
$config['per_page'] = 3;
$config['uri_segment'] = 2;
$config['use_page_numbers'] = TRUE;
$this->load->library('pagination');
$this->pagination->initialize($config);
// Set the page info
$page = ($this->uri->segment(2)) ? $this->uri->segment(2) : 0;
$data['newsPosts'] = $this->post_model->get_post_list_excerpt('NWS',$config['per_page'], $page);
$data['links'] = $this->pagination->create_links();
$this->template->load('default', 'newsview', $data);
}
elseif($slug == null) {
// Get the page specific to the chosen category
}
}
为了尝试整理 URL,我还使用了路由:
路由.php
$route['news'] = 'site/news';
$route['news/(:any)'] = 'site/news/$1';
$route['news/(:any)/(:any)'] = 'site/news/$1/$2';
有没有办法解决我正在尝试做的事情/甚至可能吗?我想避免必须有单独的方法/控制器(news/categories/$category
如果可能的话