単一のコントローラー関数 Browse() に渡されるさまざまな uri セグメントを定義することによって検索される製品のリストをページ分割しようとしています。CI の uri_to_assoc() を使用して、SQL クエリに渡されるキー ペアのリストを作成しています。しかし、これのページネーションがどのように機能するかについて頭を悩ませようとしているのは本当に困難です。うまくいけば私の問題を説明するいくつかの例を挙げます。
サイトに掲載されている商品をカテゴリ、ブランド、または範囲別に閲覧できるようにしたいと考えています。ユーザーは、次のような 3 つの検索要素の任意の組み合わせを閲覧できる必要があります。
- http://mysite.com/our-products/browse = すべて閲覧
- http://mysite.com/our-products/browse/category/cabinets+%26+storage - カテゴリ キャビネット & ストレージの製品を一覧表示します
- http://mysite.com/our-products/browse/category/cabinets+%26+storage/brands/ramon+soler - ブランドがRamon SolerであるカテゴリCabinets & Storageの製品を一覧表示します
- http://mysite.com/our-products/browse/category/cabinets+%26+storage/range/texas - 範囲がテキサスであるキャビネットおよびストレージのカテゴリから製品を一覧表示します
- http://mysite.com/our-products/browse/brand/ramon+soler/range/texas - Ramon Soler ブランドの製品を一覧表示します。範囲は Texas です。
- などなど...
問題は、ページネーションに関しては、CI は常にこれを URL の最後に追加することです。そのため、クエリの深さに応じて、URL 内のオフセット パラメータの位置が異なります。
オフセット セグメントをこの形式に導入する方法を知っている人はいますか? また、これらのページの最初のロードでは、オフセット セグメントはまったく設定されず、後続のページのロードでのみ存在することを忘れないでください。
可能であればクエリ文字列を使用する必要はなく、URL セグメント ベースのアプローチに固執する必要はありません。
ありがとう。