【问题标题】:How to make pagination with category post Codeigniter如何使用类别发布 Codeigniter 进行分页
【发布时间】:2016-11-03 03:37:48
【问题描述】:

任何人都知道如何解决我的问题.. 我的问题是基于类别工作的分页但是当我单击按钮分页时结果是找不到页面可能我的路线有问题但我不确定..请帮助我.. 这是我的路线

$route['blog/category/:any']                 = 'Blog_Category_Post/page';

这是我的控制器

public function page($offset=0)
{
    $id=$this->uri->segment('3');
    $this->db->select('id,categoryId');
    $this->db->from('t_blog_post');
    $this->db->where('categoryId',$id);
    $query= $this->db->get();

    //$jml                        = $this->db->get('t_blog_post');
    $config['base_url']         = base_url().'blog/category/'.$id.'/page';
    $config['total_rows']       = $query->num_rows();
    $config['per_page']         = 2; /*Jumlah data yang dipanggil perhalaman*/  
    $config['uri_segment']      = 4;    /*data selanjutnya di parse diurisegmen 3*/
    /*Class bootstrap pagination yang digunakan*/
    $config['full_tag_open']    = "<ul class='pagination pagination-sm' style='position:relative; top:-25px;'>";
    $config['full_tag_close']   ="</ul>";
    $config['num_tag_open']     = '<li>';
    $config['num_tag_close']    = '</li>';
    $config['cur_tag_open']     = "<li class='disabled'><li class='active'><a href='#'>";
    $config['cur_tag_close']    = "<span class='sr-only'></span></a></li>";
    $config['next_tag_open']    = "<li>";
    $config['next_tagl_close']  = "</li>";
    $config['prev_tag_open']    = "<li>";
    $config['prev_tagl_close']  = "</li>";
    $config['first_tag_open']   = "<li>";
    $config['first_tagl_close'] = "</li>";
    $config['last_tag_open']    = "<li>";
    $config['last_tagl_close']  = "</li>";
    $this->pagination->initialize($config);

    $list_blogPost=$this->BlogCategory->get_post($config['per_page'], $offset,$id);
    $list_lastblogPost=$this->BlogCategory->get_last_post();
    $list_blogCategory=$this->BlogCategory->get_category();
    $data=array(
        'title'          => 'Blog',
        'userId'         => $this->session->userdata('sh_userId'),
        'fullName'       => $this->session->userdata('sh_fullName'),
        'accountTypeId'  => $this->session->userdata('sh_accountTypeId'),
        'photo'          => $this->session->userdata('sh_photo'),
        'halaman'        => $this->pagination->create_links(),
        'offset'         => $offset,
        'listblogPost'   => $list_blogPost,
        'listlastblogPost'=> $list_lastblogPost,
        'listblogCategory'=>$list_blogCategory
        );
    $this->template->display_admin('blog_categorypost',$data);
}

【问题讨论】:

    标签: php codeigniter pagination


    【解决方案1】:

    由于您的 URL 有两个参数,您需要为该方法设置两个路由。将您的路线更改为

    $route['blog/category/(:any)/page'] = 'Blog_Category_Post/page/$1/page';
    $route['blog/category/(:any)/page/(:any)'] = 'Blog_Category_Post/page/$1/page/$2';
    

    现在更改配置行 base_url 如下

    $config['base_url']  = site_url('blog/category').'/'.$id.'/page';
    

    最后你的page 控制器应该是

        public function page($categoryId){
         $this->db->select('id,categoryId');
         $this->db->from('t_blog_post');
         $this->db->where('categoryId',$categoryId);
         $query= $this->db->get();
    
        //$jml                        = $this->db->get('t_blog_post');
         $config['base_url']         = site_url('blog/category/').'/'.$categoryId.'/page';
         $config['total_rows']       = $query->num_rows();
         $config['per_page']         = 2; /*Jumlah data yang dipanggil perhalaman*/  
        $config['uri_segment']      = 5;    /*data selanjutnya di parse diurisegmen 3*/
        /*Class bootstrap pagination yang digunakan*/
         $config['full_tag_open']    = "<ul class='pagination pagination-sm' style='position:relative; top:-25px;'>";
         $config['full_tag_close']   ="</ul>";
         $config['num_tag_open']     = '<li>';
         $config['num_tag_close']    = '</li>';
         $config['cur_tag_open']     = "<li class='disabled'><li class='active'><a href='#'>";
         $config['cur_tag_close']    = "<span class='sr-only'></span></a></li>";
         $config['next_tag_open']    = "<li>";
         $config['next_tagl_close']  = "</li>";
         $config['prev_tag_open']    = "<li>";
         $config['prev_tagl_close']  = "</li>";
         $config['first_tag_open']   = "<li>";
         $config['first_tagl_close'] = "</li>";
         $config['last_tag_open']    = "<li>";
         $config['last_tagl_close']  = "</li>";
         $this->pagination->initialize($config);
    
        if ($this->uri->segment(5)) {
                $offset = $this->uri->segment(5);
            } else {
                $offset = 0;
            }
    
         $list_blogPost=$this->BlogCategory->get_post($config['per_page'], $offset,$categoryId);
         $list_lastblogPost=$this->BlogCategory->get_last_post();
         $list_blogCategory=$this->BlogCategory->get_category();
         $data=array(
            'title'          => 'Blog',
            'userId'         => $this->session->userdata('sh_userId'),
            'fullName'       => $this->session->userdata('sh_fullName'),
            'accountTypeId'  => $this->session->userdata('sh_accountTypeId'),
            'photo'          => $this->session->userdata('sh_photo'),
            'halaman'        => $this->pagination->create_links(),
            'offset'         => $offset,
            'listblogPost'   => $list_blogPost,
            'listlastblogPost'=> $list_lastblogPost,
            'listblogCategory'=>$list_blogCategory
            );
         $this->template->display_admin('blog_categorypost',$data);
    }
    

    现在测试。

    【讨论】:

    • 感谢您的信息,但实际上是通过脚本工作按类别进行分页过滤,例如localhost/eh/blog/category/1(id 类别)问题在于链接分页是 http:/localhost/eh/blog/category/1 /page/2(page) 和链接分页给出结果 404
    • @JefriFernando 好的,我已经更新了我的答案。现在检查
    • 路线有变化吗?实际上以前我有你建议的类型脚本,但结果是找不到页面 404
    • 向上向上向上向上
    • ??发生了什么
    猜你喜欢
    • 1970-01-01
    • 2016-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多