Yii 1.1.17 二、Gii创建后台与后台登录验证

Yii框架后台模块搭建指南
本文详细介绍使用Yii框架创建后台模块的过程,包括启用Gii工具、创建模块、配置及访问等步骤,并介绍了如何使用CActiveForm组件创建表单,以及实现登录页验证码的方法。

一、用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; ?>

 

转载于:https://www.cnblogs.com/mingc/p/6747129.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值