私は2つのモデルを持っています:
Book
Category
私には2つの見方があります:
books/browse
このビューには、並べ替えオプション、本の言語選択、著者/タイトルフィルターなどを含むページ付けされた本のリストがあります。ないことの1つは、本のカテゴリツリーです。実際、このコントローラーはパラメーターcategory_idを取り、このカテゴリーの本のみを表示します。
categories/tree
このビュー(コントローラー)はカテゴリーツリーを検索し、1つのパラメーター-> category_id->を使用して、ツリーの印刷方法を決定します(すべての親ノード、親リストなどを表示します)。
次に、左側にカテゴリツリーがあり、右側に本のリスト(すべてのものを含む)があるビュー(たとえば、browsetree)が必要です。
これを達成するための最良の解決策は何でしょうか?(問題は、すべてのパラメーター(category_idパラメーター+並べ替え+フィルタリング用のいくつかのGETパラメーター)を含むブックブラウズビューへのリンクを保存できるようにしたいことです。また、ビューまたはコントローラーメソッドを書き直したくありません。 。
- - - - - - - 編集
さて、私は要素categorytreeに私のツリーを持っています、そしてそれはこのように見えます:
$params = $this->requestAction('/categories/tree/'.$category_id);
print_category($params['tree'][0],$params['parents'],$category_id);
$ category_idは、パラメーターとして要素に渡されます。これは/books/browse内にあります。
<?php echo $this->element('categorytree', array("category_id" => $category_id)); ?>
必要なのは、categorytree要素で、books/browseがロードされる現在のURLに基づいて各ツリーノードが/books/browseへの有効なリンクであることを望んでいることです。つまり、URLは次のようになります。
books/browse/34/sort:asc/page:4?author=Author&something=something
このリンクを/books/ browser / ...ビュー内で取得して要素に渡し、それを解析して/ 34 /(カテゴリID)を他のカテゴリに置き換えることができます...しかし、もっと簡単でエレガントな方法はありますかこれを行うのですか?