0

そうです、初めてページネーションを使用し、最初のページを超えて機能させることはできません (404 エラー)。オフセットの変数を整数 (15 など) に変更したかのように、すべて $offset 変数を中心に展開しているように見えますが、15 行目以降の最初のページに結果が表示されますが、 $this->uri->segment( 2)変数が機能していません。すべて正しく表示されますが、2 ページ目が読み込まれません (前述のとおり、404 エラー)。

コントローラ:

<?php
class Brands extends CI_Controller
{
                public function index()
                {
                                $this->load->library('pagination');
                                $config['base_url']   = base_url() . '/brands/';
                                $config['total_rows'] = $this->db->count_all('seixweb');
                                $config['per_page']   = 15;
                                $limit                = $config['per_page'];
                                $offset               = $this->uri->segment(2);
                                $this->pagination->initialize($config);
                                $this->load->model('Default_model');
                                ... Etc.
                }
}

モデル:

<?php
class Default_model extends CI_Model
{
                function get_list($limit, $offset)
                {
                                $query = $this->db->get('tbl', $limit, $offset);
                                return $query->result_array();
                }
}

URL (最初のページ):

http://www.mydomain.com/brands

URL (2 ページ目):

http://www.mydomain.com/brands/15

私は何を間違っていますか?

エラーとは関係ありませんが、以下を参照してください。

        <!-- Products -->
        <div class="products">
            <div class="cl">&nbsp;</div>

            <p><?=$this->pagination->create_links();?></p>

            <div class="cl">&nbsp;</div>
        </div><!-- End Products -->
4

4 に答える 4

0

OFFSET のデフォルト パラメータを設定する

$config['per_page'] = $this->uri->segment(3, 15);

2 番目のパラメーターは、存在しない場合のデフォルト値を 15 に定義します $this->uri->segment(3)

于 2013-09-13T04:39:37.740 に答える
0

これは、リンクが間違っている可能性があるためです。

codeigniter のデフォルトは です。www.example.com/controller/action何も変更していない場合、リンクはコントローラー ブランドで 15 という名前の関数を呼び出しています。

リンクを次のように設定するhttp://www.mydomain.com/brands/yourfunctionname/15か、codeigniter に 2 番目の uri セグメントを探すように指示する必要があり$config['uri_segment'] = 2;ます。この場合は推奨されません。

于 2013-09-12T19:23:17.977 に答える
0
$config['base_url']   = base_url() . '/brands/';

最後のスラッシュを削除

$config['base_url']   = base_url() . '/brands';

ルールroutes.phpを追加

$route['brands/(:num)'] = "brands";
于 2013-09-13T06:33:41.220 に答える