随着我们往应用程序中添加了越来越多的任务,分页显示就势在必行了。QeePHP 对分页有各种内置的方法,而且可以使用现成的分页导航插件来减少工作量。
这里我们使用 _code/control/pagination.php 这个分页导航插件。按照这个控件的说明把控件文件和样式表加入到应用程序中后,修改 tasks 控制器的 actionIndex() 方法为:
function actionIndex() { $user=$this->_app->currentUserObject(); $tasks=Task::find('owner_id=?',$user->id()) //分页 ->limitPage(request('page',1),5) ->fetchPagination($this->_view['pagination']) //获取数据 ->getAll(); $this->_view['tasks']=$tasks; }最后修改 _code/view/tasks/index.php 视图,在最后一行“”后加入:
<?php echo Q::control('pagination','pagination-task-index',array('pagination'=>$pagination))?>
刷新浏览器:
分页控件
多页效果
当前,查看任务列表需要我们在 URL 中明确指定访问 tasks 控制器,这显然很不友好。所以我们对默认的 default 控制器做一点小手术,
修改 app/controller/default_controller.php 文件的内容为:
class Controller_Default extends Controller_Abstract { function actionIndex() { if ($this->_app->currentUserRoles()) { // 如果已经登录,就转到任务列表页面 return $this->_redirect(url('tasks/index')); } else { // 未登录则转到登录页面 return $this->_redirect(url('users/login')); } } }
修改后,todo 应用的功能就算齐备了。