好的,基本上我已经使用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中添加其他参数...
由于
答案 0 :(得分: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页的标签1和第3页的标签2放在一起。
希望有所帮助!