1

さて、基本的には、タブを使用してユーザーのメッセージの受信トレイ/送信トレイを表示するために、Kohanaを使用して簡単なページを作成しました。

私のコントローラーは次のようなものです。

$content                 = View::factory('messages')->bind('user', $user)->bind('received', $received)->bind('sent', $sent)->bind('pager_links', $pager_links);
$user                    = Auth::instance()->get_user();
$message_count           = ORM::factory('message')->where('to_id', '=', $user)->where('read', '=', '0')->count_all();
$pagination              = Pagination::factory(array(
    'total_items' => $message_count,
    'items_per_page' => 10
));
$received                = ORM::factory('messages')->where('messages.to_id', '=', $user)->limit($pagination->items_per_page)->offset($pagination->offset)->find_all();
$sent                    = ORM::factory('messages')->where('messages.user_id', '=', $user)->limit($pagination->items_per_page)->offset($pagination->offset)->find_all();
$pager_links             = $pagination->render();
$this->template->content = $content; 

これまでのところ、受信したメッセージとページ付けのみをビューに表示しており、正常に機能しています。ただし、受信したアイテムと送信したアイテムの両方を同じページに表示するタブコンテナを実装したいと思います。

両方のタブに影響を与えずに、各タブのページネーションアスペクトをどのように使用するのか疑問に思っています。既存のアプローチを使用してこれを行うための最良の方向は何でしょうか?おそらく、タブが選択されたときにURLに追加のパラメータをスローします...

ありがとう

4

1 に答える 1

1

page基本的に、両方のページネーション機能に明らかに影響するため、両方のタブのクエリ文字列で同時に使用できないという問題があります。current page幸いなことに、実際には、クエリ文字列でパラメーターのソースを指定できる構成が公開されています。

これを試して...

$pagination              = Pagination::factory(array(
    'current_page' => array('source' => 'query_string', 'key' => 'tab1_page'),
    'total_items' => $message_count,
    'items_per_page' => 10
));

次に、ページネーション ビューがクエリ文字列の正しいパラメーターにページ番号を渡していることを確認するだけです。たとえば、http://mydomain.com/pagewithtabs?tab1_page=2&tab2_page=3タブ 1 をページ 2 に、タブ 2 をページ 3 に配置します。

それが役立つことを願っています!

于 2012-11-18T11:41:14.943 に答える