Yii 1.1.17 实战入门

Posted mingc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Yii 1.1.17 实战入门相关的知识,希望对你有一定的参考价值。

一、用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 实战入门的主要内容,如果未能解决你的问题,请参考以下文章

Yii 1.1.17 实战入门

Yii 1.1.17 实战入门

Yii 1.1.17 实战入门

Yii2片段缓存详解

nodejs vuejs java python 入门到高级视频

YII实战笔记