Yii 1.1.17 二、Gii创建后台与后台登录验证
一、用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创建后台与后台登录验证的更多相关文章
- silverlight开发实例(Prism+MVVM+RIA)(二)--创建shell及用户登录
在上篇基本说清了本项目的基本框架,下面开始说下项目的加载和shell.开始之前在建立EF时出现了一个问题,我在数据库中建立了视图,而在EF导入视图时出现因无法匹配主键导致无法导入视图的问题,检查发现是 ...
- Asp.NetMVC利用LigerUI搭建一个简单的后台管理详解(函登录验证)
上一篇 Asp.Net 中Grid详解两种方法使用LigerUI加载数据库数据填充数据分页 了解了LigerUI 中Grid的基本用法 现在结合上一篇的内容做一个简单的后台管理,当然也有前台的页面 ...
- yii使用gii创建后台模块与widget使用
yii使用gii创建后台模块与widget使用 1.在protected/config/main.php中打开gii的配置属性. 'gii'=>array( 'class'=>'syste ...
- Yii创建前台和后台登录表单和通过扩展 CWebUser 增加信息到 Yii::app()->user
我参考了这篇文章来构建项目的前台和后台的目录结构.感谢Andy的这篇文章.按照所有的步骤,您将有单独的前台和后台面板,如: http://localhost/index.php // 前台 http: ...
- Yii 1.1.17 六、开启路由与使用缓存
一.开启路由 1.在配置文件main.php的components中 定义如下: // 定义路由 'urlManager'=>array( // URL模式为PATHINFO 'urlForma ...
- Yii 1.1.17 一、安装、目录结构、视图、控制器、扩展自定义函数
这几天了解了一下Yii框架,以简单的博客项目实战入门.大致的实现流程做个记录. 一.Yii 安装与环境检测 从 www.yiiframework.com 获取一份Yii的拷贝,解压到 /wwwroot ...
- Yii 1.1.17 三、数据库连接、定义模型、数据查询、验证登录、SESSION使用与URL生成
一.数据库连接 1.配置连接参数 在database.php里面开启: 'db' => array( 'connectionString' => 'mysql:host=127.0.0.1 ...
- SQLite 入门教程(二)创建、修改、删除表 (转)
转于 SQLite 入门教程(二)创建.修改.删除表 一.数据库定义语言 DDL 在关系型数据库中,数据库中的表 Table.视图 View.索引 Index.关系 Relationship 和触发器 ...
- Ubuntu下Django初体验(二)——创建工程及应用
一.工程目录详解 创建工程后得到如下目录: 1. manage.py 管理项目.创建数据库.启动服务器等.测试等. 查看子命令: python manage.py 启动服务器: python mana ...
随机推荐
- Foundation框架—时间处理对象NSDate
NSDate类用于保存时间值,同时提供了一些方法来处理一些基于秒级别时差(Time Interval)运算和日期之间的早晚比较等. 1. NSDate的构造方法和构造获取实例的属性 用于创建NSDat ...
- NOI 97 (Vijos 1464)积木游戏(DP)
很普通的DP,设dp[i][j][k]为第i块积木放在第j堆且摆放状态为k的最高高度.方程很容易推出. # include <cstdio> # include <cstring&g ...
- Flask的第一个应用
Flask 是一个 Python 实现的 Web 开发微框架,微框架中的“微”意味着 Flask 旨在保持核心简单而易于扩展. 与Django功能上比较: Django:中间件,路由系统,视图(CBV ...
- 【转】c# 类反射简单操作
转:http://www.jb51.net/article/25863.htm 首先建立一个测试的类 复制代码代码如下: public class MyClass { public int one ...
- POJ2987:Firing——题解
http://poj.org/problem?id=2987 题目大意: 炒掉一个人能够获得b收益(b可以<0),但是炒掉一个人必须得炒掉他的下属(然后继续递归). 求最大收益和此时最小裁员. ...
- HDOJ(HDU).2266 How Many Equations Can You Find (DFS)
HDOJ(HDU).2266 How Many Equations Can You Find (DFS) [从零开始DFS(9)] 点我挑战题目 从零开始DFS HDOJ.1342 Lotto [从零 ...
- ContestHunter暑假欢乐赛 SRM 04
逃了一场SRM(躺 A题可以看成0点到1点,有p的几率从0到1,1-p几率不动,求0到1的期望步数.很显然概率是不降序列数/n!,然后列个方程E[0] = E[0] * (1 - p) + 1,解得E ...
- dubbox小demo
概述: 我们建立两个web项目,一个是service负责提供服务,另一个是web项目负责调用服务. 两个项目都是 maven Project 项目 生产者项目: 项目中主要就是: pom文件,引入相关 ...
- HDU 5645
DZY Loves Balls Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others ...
- @Autowired @Resource @Qualifier的区别
参考博文: http://www.cnblogs.com/happyyang/articles/3553687.html http://blog.csdn.net/revent/article/det ...