zoukankan      html  css  js  c++  java
  • 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')
      ),
    
      ...
    
    ),
    
  • 相关阅读:
    中国移动神州行5元卡普遍缺货
    中国移动:抢占4G开展先机 上马手机付出
    广东可团购烧号CDMA版iPhone 4
    买了一款新手机!show 一下
    提供浙江大学信息与通信工程专业的考研资料
    实习实习!
    考研or保研?
    处理 NSOpertion 间依赖关系的一种方式
    2D & 3D Engine Resource
    在 iOS 应用中使用 Lua 作为模块粘合剂的方法
  • 原文地址:https://www.cnblogs.com/mingc/p/6752142.html
Copyright © 2011-2022 走看看