一、分页类使用
1、在控制器中
// 实例化 $criteria = new CDbCriteria(); $articleModel = Article::model(); // 分页 $total = $articleModel->count($criteria); //总记录数 $page = new CPagination($total); //实例化分页类 $page->pageSize = 3; //每页3条 $page->applyLimit($criteria); //截取记录 $articleInfo = $articleModel->findAll($criteria); $this->render('index', array('articleInfo' => $articleInfo, 'page' => $page)); //渲染视图,分配变量
2、在视图中
<?php $this->widget('CLinkPager', array( 'header' => '', //前端页面上本行开头的提示信息,默认为“Go to page:” 'firstPageLabel' => '首页', 'lastPageLabel' => '末页', 'prevPageLabel' => '上一页', 'nextPageLabel' => '下一页', 'pages' => $page, 'maxButtonCount' => 5 // 最多显示5个页码按钮 )); ?>
二、关联模型
在模型的 relations() 方法中设置要关联的表。
/** * 关联category模型 * @return [type] [description] */ public function relations(){ return array( //主表中该模型名 => array(关联关系, 关联副表,关联字段(主表)) 'category' => array(self::BELONGS_TO, 'category', 'cid') ); }
三、权限验证
给特定控制器设置操作权限,只需给该控制器添加两个方法:filters()和accessRules()
/** * 过滤器 * @return [type] [description] */ public function filters() { return array( //访问控制,可以通过+ -来控制哪些方法是否需要参与过滤 'accessControl - index' //index无需验证 ); } /** * 访问规则 * @return [type] [description] */ public function accessRules() { return array( array( //允许所有用户访问index操作 'allow', 'actions' => array('index'), 'users' => array('*') // * 表示所有用户, @ 表示登录用户, ? 表示来宾用户 ), array( //允许通过验证的用户访问index, add操作 'allow', 'actions' => array('index', 'add'), 'users' => array('@') ), array( //允许管理员admin执行删除操作 'allow', 'actions' => array('del'), 'users' => array('admin') ), array( //拒绝网站编辑员执行删除操作 'deny', 'acionts' => array('del'), 'users' => array('editor') ) ); }
四、默认跳转页面
有了权限验证,那么就需要在没有权限时访问的默认跳转页面,
在main.php里,
'components'=>array(
...
'user'=>array(
// enable cookie-based authentication
'allowAutoLogin'=>true,
// 默认跳转到后台登录页
'loginUrl' => array('admin/login/index')
),
...
),