首页 > 代码库 > Yii 1.1.17 实战入门(五)

Yii 1.1.17 实战入门(五)

分页类使用

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‘)
  ),

  ...

),

 

Yii 1.1.17 实战入门(五)