0

codeigniter でのルーティングに問題があります。

Pages という名前のコントローラーがあり、次のことを行う product という名前のメソッドがあるとします。

public function product() {
    $this->load->model('pages_model');
    $productid = $this->uri->segment(3);

    $data['product'] = $this->pages_model->getProduct($productid);
    // ...load view, etc.
}

特定の製品にアクセスするには、私の URL は www.example.com/pages/product/ID になります。

www.example.com/name-of-product にアクセスして製品にアクセスできるように、カスタム ルートをセットアップしたいと考えています。

ただし、

$route['name-of-product'] = 'pages/product/ID'; 

動作しません。商品ビューは読み込まれますが、商品データは読み込まれません。私が言うなら

$route['name-of-product/:any/ID'] = 'pages/product/ID';

正常に機能しますが、URL の末尾に 2 つのセグメントを追加したくありません。

4

1 に答える 1

1

2 つの追加セグメントは必要ありません。1つで十分です。

$route['PRODUCT_NAME/PRODUCT_ID'] = 'pages/product/PRODUCT_ID';

ただし、私があなたの場合、最初のセグメントが代わりに製品の ID になるように URL を作成します。

$route['PRODUCT_ID/PRODUCT_NAME'] = 'pages/product/PRODUCT_ID';

そうすれば、製品 ID だけを知っていれば、入力example.com//123する必要がなくなり、問題が発生する可能性があります。私が間違っていなければ、そうすると、CI は という名前のコントローラーをロードしようとします123

于 2012-06-07T02:20:19.540 に答える