1

&news()という 2 つのオプションのパラメーターを取るメソッドがあります。$category$slug

ニュース ページは、分類されていないすべてのニュース記事のページ分割されたリストを表示する必要があります (カテゴリ ページ ($categoryセット付き) も同じことを行う必要がありますが、分類されたサブセットの場合)。

このため、2 番目の URI セグメントが の$categoryパラメーターとして表示されているため、標準のページネーションが機能していないようですnews()。おそらく、2 番目の 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可能であれば

4

1 に答える 1