【发布时间】:2021-10-09 06:28:00
【问题描述】:
当我创建没有类别的分页时,它可以工作,但使用类别,它会使用错误的数据。使用类别分页,它应该显示单个类别的数据。但不幸的是,它显示了混合的类别数据。 这些东西在索引功能上工作正常..... 在我的索引控制器中...
public function index(){
$this->db->where('post_active',1);
$rows = $this->db->count_all_results('blogs');
// Pagination Config
$config['base_url'] = base_url().'blog';
$config['total_rows'] = $rows;
$config['per_page'] = 3;
$config['uri_segment'] = 2;
$config['use_page_numbers'] = TRUE;
$config['first_link'] = '<i class="fa fa-angle-double-left"></i>';
$config['last_link'] = '<i class="fa fa-angle-double-right"></i>';
$config['prev_link'] = '<i class="fa fa-angle-left"></i>';
$config['next_link'] = '<i class="fa fa-angle-right"></i>';
$config['attributes'] = array('class' => 'pagination-link');
$page = ($this->uri->segment(2)) ? $this->uri->segment(2) : 0;
$pageLimit = ($page*$config['per_page']);
// Init Pagination
$this->pagination->initialize($config);
//meta title, discription, keywords
$data['meta_title'] = 'Your meta title';
$data['meta_description'] = 'Your meta description';
$data['meta_keywords'] = 'Your meta keywords';
//data
$data['title'] = 'Latest Posts';
$data['blogs'] = $this->Blog_model->get_posts(FALSE, $config['per_page'], $pageLimit);
$data['categories'] = $this->Blog_model->get_categories();
//view
$data['main_content'] = 'blog';
$this->load->view('include/template',$data);
}
我的索引模型是...
public function get_posts($slug = FALSE, $limit = TRUE, $offset = FALSE){
if($limit){
$this->db->limit($limit, $offset);
}
if($slug === FALSE){
$this->db->order_by('blogs.post_id', 'DESC');
$this->db->join('category', 'category.category_name = blogs.category');
$query = $this->db->get('blogs');
return $query->result_array();
}
$query = $this->db->get_where('blogs', array('post_slug' => $slug));
return $query->row_array();
}
完美运行。 但是当我在另一个函数(类别)上尝试这个时,它显示数据计数正确,但在其他分页中显示错误数据。这个功能主要是针对帖子数据的分类。这是我的控制器...
public function category($category_name){
$rows = $this->db->where(['category'=>$category_name])->from("blogs")->count_all_results();
// Pagination Config
$config['base_url'] = base_url().'blog/category/'.$category_name;
$config['total_rows'] = $rows;
$config['per_page'] = 3;
$config['uri_segment'] = 4;
$config['use_page_numbers'] = TRUE;
$config['first_link'] = '<i class="fa fa-angle-double-left"></i>';
$config['last_link'] = '<i class="fa fa-angle-double-right"></i>';
$config['prev_link'] = '<i class="fa fa-angle-left"></i>';
$config['next_link'] = '<i class="fa fa-angle-right"></i>';
$config['attributes'] = array('class' => 'pagination-link');
$page = ($this->uri->segment(4)) ? ($this->uri->segment(4)-1) : 0;
$pageLimit = ($page*$config['per_page']);
// Init Pagination
$this->pagination->initialize($config);
//meta title, discription, keywords
$data['meta_title'] = 'Your meta title';
$data['meta_description'] = 'Your meta description';
$data['meta_keywords'] = 'Your meta keywords';
//data
$data['cat'] = $this->Blog_model->get_categories();
$data['title'] = $category_name;
$data['categories'] = $this->Blog_model->get_posts_by_category($category_name, FALSE, $config['per_page'], $pageLimit);
//view
$data['main_content'] = 'blog_category';
$this->load->view('include/template',$data);
}
这个控制器的型号是……
public function get_posts_by_category($category_name, $slug = FALSE, $limit = TRUE, $offset = FALSE){
if($limit){
$this->db->limit($limit, $offset);
}
if($slug === FALSE){
$this->db->order_by('blogs.post_id', 'DESC');
$this->db->join('category', 'category.category_name = blogs.category');
$query = $this->db->get_where('blogs');
return $query->result_array();
}
$query = $this->db->get_where('blogs', array('category_name' => $category_name,'post_slug' => $slug));
return $query->row_array();
}
请帮我解决这个问题。
【问题讨论】:
标签: php arrays codeigniter variables codeigniter-3