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