2

私は、訪問者が製品を一覧表示、並べ替え、フィルタリングして閲覧できるようにするシステムを持っています。

"/category/smartphones/samsung/android/.../"訪問者が「ブランド」、「オペレーティング システムの種類」、「CPU」などの選択でフィルタリングすると、URL が次のように表示されます。

filter by brand : /category/smartphones/samsung/
by os type : /category/smartphones/android/
by brand and os type : /category/smartphones/samsung/android/
...

また、訪問者はフィルタリング中に並べ替えたり、並べ替え中にフィルタリングしたりできます。したがって、URLは次のようになります"/category/smartphones/samsung/android/sort:created/direction:desc/"

私はこのフレームワークの初心者なので、cakephp でそのようなことができるかどうかはわかりません。またはそのようなもので解決策はありますか?

ルーターで構成を並べ替えました。しかし、そのようなものから始める方法がわかりません(フィルターは無制限のパラメーターです)。

4

1 に答える 1

4

実は非常に簡単で、Cake のデフォルトのルーティング方法に満足している場合は、routes ファイルにエントリを追加する必要さえありません。:-)

これは私がしたことです...

class PagesController extends AppController {
    function test() {
        debug($this->params['named']);
        debug($this->params['pass']);
    }
}

それから私は電話しました...http://localhost/pages/test/x/y/z/something:x/else:y/1/2/3

これを出力した...

array(
    'something' => 'x',
    'else' => 'y'
)

array(
    (int) 0 => 'x',
    (int) 1 => 'y',
    (int) 2 => 'z',
    (int) 3 => '1',
    (int) 4 => '2',
    (int) 5 => '3'
)

したがって、 and を使用$this->params['named']$this->params['pass']て、必要な用語を取得するだけです。それが役立つことを願っています!

于 2013-01-23T04:57:25.243 に答える