一、用Gii创建后台模块

1、启用gii,在config/main.php

'gii' => array(
  'class' => 'system.gii.GiiModule',
  'password' => 'Enter your password here', //设置密码
  'ipFilters' => array('127.0.0.1', '::1'),
),

2、访问gii

在浏览器地址栏键入:127.0.0.1/yii/blog/index.php?r=模块名字,回车确定    (这里模块名就是gii了)

输入配置中设置的密码,进入gii,页面如下:

注意:开启路由的情况下,有时候会无法访问,建议临时关闭路由。

3、创建后台模块

点击 Module Generator 创建模块,新页面中输入模块ID,Preview点击预览,确定创建。

这样在protected目录就有了modules/admin/模块目录

 4、引入admin后台模块

在 main.php 中配置,添加 admin 模块:

'modules'=>array(
  'gii'=>array(
    ...
  ),   'admin', //引入admin后台模块
),

5、如何访问模块

127.0.0.1/yii/blog/index.php?r=模块/控制器/操作

二、小物件widget使用

CActiveForm组件,可以创建基于模型 数据的可交互HTML 表单

<?php $form = $this->beginWidget('CActiveForm'); ?>
<?php echo $form->textField(模型实例,模型中属性名,html标签属性); ?>
<?php $this->endWidget(); ?>

这将在视图中创建一个input[type='text']表单元素。

更多创建方法参考CActiveForm类文件源码:framework\web\widgets\CActiveForm.php

三、后台模块登录页验证码使用

1、控制器中建立actions方法

public function actions(){
  return array(
    'captcha' => 'CCaptchaAction',
    'width' => 80,
    'height' => 25,
    'minLength' => 4,
    'maxLength' => 4
  );
}

2、视图中调用验证码生成组件

普通写法:

<?php $this->widget('CCaptcha'); ?>

带有点击刷新:

<?php
  echo $this->widget('CCaptcha', array(
    'showRefreshButton' => false, //不显示刷新按钮
    'clickableImage' => true, //单击图片更换验证码
    'imageOptions' => array(
      'alt' => '点击刷新',
      'title' => '点击刷新'
      'style' => 'cursor: pointer;'
    )
  );
?>

显示错误信息:

<?php echo $form->error(模型实例,模型属性);?>

3、修改核心类(如果点击可刷新就不用修改了):

在framework/web/widgets/captcha/CCaptchaAction.php

修改run方法里面:

$this->renderImage($this->getVerifyCode(true)); //传入参数true

4、设置验证规则

在loginForm.php(YII自带的登录模型)的rules方法里:

public function rules()
{
  return array(
    // array(模型属性,'captcha', 'message' => 错误信息),
    array('captcha', 'captcha', 'message' => '验证码有误')
  );
}

5、触发验证

表单元素都生成好了,规则也定义了,接下来触发验证

在浏览器中查看表单的提交地址,在对应的控制器操作中,处理登录表单:

$loginForm->attributes = $_POST['LoginForm']; //POST表单压入模型属性
$loginForm->validate();

四、为后台模块设置单独的布局文件

1、在 protected/modules/admin 目录下新建文件夹 components,在 components 下新建后台模块的基类控制器 Controller.php(可以参考前台基类控制器protected/components/Controller.php 的代码)

2、在后台模块下的视图 views 文件夹里新建 layouts 文件夹,里面放置后台的布局文件

3、在后台的基类控制器components/Controller.php中,设置:

public $layout = '/layouts/xxx';  // xxx 是布局文件 xx.php

4、如果后台模块没有公共区域,直接在布局文件里:

<?php echo $content; ?>

Yii 1.1.17 二、Gii创建后台与后台登录验证的更多相关文章

  1. silverlight开发实例(Prism+MVVM+RIA)(二)--创建shell及用户登录

    在上篇基本说清了本项目的基本框架,下面开始说下项目的加载和shell.开始之前在建立EF时出现了一个问题,我在数据库中建立了视图,而在EF导入视图时出现因无法匹配主键导致无法导入视图的问题,检查发现是 ...

  2. Asp.NetMVC利用LigerUI搭建一个简单的后台管理详解(函登录验证)

    上一篇 Asp.Net 中Grid详解两种方法使用LigerUI加载数据库数据填充数据分页  了解了LigerUI 中Grid的基本用法  现在结合上一篇的内容做一个简单的后台管理,当然也有前台的页面 ...

  3. yii使用gii创建后台模块与widget使用

    yii使用gii创建后台模块与widget使用 1.在protected/config/main.php中打开gii的配置属性. 'gii'=>array( 'class'=>'syste ...

  4. Yii创建前台和后台登录表单和通过扩展 CWebUser 增加信息到 Yii::app()->user

    我参考了这篇文章来构建项目的前台和后台的目录结构.感谢Andy的这篇文章.按照所有的步骤,您将有单独的前台和后台面板,如: http://localhost/index.php // 前台 http: ...

  5. Yii 1.1.17 六、开启路由与使用缓存

    一.开启路由 1.在配置文件main.php的components中 定义如下: // 定义路由 'urlManager'=>array( // URL模式为PATHINFO 'urlForma ...

  6. Yii 1.1.17 一、安装、目录结构、视图、控制器、扩展自定义函数

    这几天了解了一下Yii框架,以简单的博客项目实战入门.大致的实现流程做个记录. 一.Yii 安装与环境检测 从 www.yiiframework.com 获取一份Yii的拷贝,解压到 /wwwroot ...

  7. Yii 1.1.17 三、数据库连接、定义模型、数据查询、验证登录、SESSION使用与URL生成

    一.数据库连接 1.配置连接参数 在database.php里面开启: 'db' => array( 'connectionString' => 'mysql:host=127.0.0.1 ...

  8. SQLite 入门教程(二)创建、修改、删除表 (转)

    转于 SQLite 入门教程(二)创建.修改.删除表 一.数据库定义语言 DDL 在关系型数据库中,数据库中的表 Table.视图 View.索引 Index.关系 Relationship 和触发器 ...

  9. Ubuntu下Django初体验(二)——创建工程及应用

    一.工程目录详解 创建工程后得到如下目录: 1. manage.py 管理项目.创建数据库.启动服务器等.测试等. 查看子命令: python manage.py 启动服务器: python mana ...

随机推荐

  1. RT-thread内核之消息队列

    一.消息队列控制块:在include/rtdef.h中 #ifdef RT_USING_MESSAGEQUEUE /** * message queue structure */ struct rt_ ...

  2. 【bzoj1877】[SDOI2009]晨跑 费用流

    题目描述 Elaxia最近迷恋上了空手道,他为自己设定了一套健身计划,比如俯卧撑.仰卧起坐等 等,不过到目前为止,他坚持下来的只有晨跑. 现在给出一张学校附近的地图,这张地图中包含N个十字路口和M条街 ...

  3. hdu 1281 棋盘游戏 (二分匹配)

    棋盘游戏 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  4. Oracle 转义字符

    id sfds_V_SF ASD_V_DSAF SD_V_DSAD   下划线是Oracle特殊字符,需要转移,如下    select * from systab t where t.id like ...

  5. [洛谷P4781]【模板】拉格朗日插值

    题目大意:给你$n(n\leqslant2000)$个点,要你求$n-1$次经过这$n$个点的多项式在$k$处的值 题解:$Lagrange$插值:$$f_x=\sum\limits_{i=1}^ky ...

  6. [HNOI2007][BZOJ1185] 最小矩形覆盖 [凸包+旋转卡壳]

    题面 BZOJ题面 前置芝士 建议先学习向量相关的计算几何基础 计算几何基础戳这里 思路 用这道题学习一下凸包和旋转卡壳 首先是凸包部分 凸包 求凸包用的算法是graham算法 算法流程如下: 找到$ ...

  7. HDOJ.1263 水果(map)

    水果 点我跳转到题面 点我一起学习STL-MAP 题意分析 给出多组测试数据,每组数据有多条信息.分别是水果种类,地点,和水果数目.每组信息要按照样例输出,并且输出要按照地点->水果种类的字典序 ...

  8. 【DP】【P2340】奶牛会展

    传送门 Description 奶牛想证明它们是聪明而风趣的.为此,贝西筹备了一个奶牛博览会,她已经对N 头奶牛进行了面试,确定了每头奶牛的智商和情商. 贝西有权选择让哪些奶牛参加展览.由于负的智商或 ...

  9. ICM Technex 2017 and Codeforces Round #400 (Div. 1 + Div. 2, combined) A map B贪心 C思路前缀

    A. A Serial Killer time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  10. 平衡二叉树 (牛客国庆day2)解锁二叉树打表姿势&&找规律套路

    链接:https://www.nowcoder.com/acm/contest/202/F来源:牛客网 平衡二叉树,顾名思义就是一棵“平衡”的二叉树.在这道题中,“平衡”的定义为,对于树中任意一个节点 ...