文档章节

Yii入门指导(四):强大的“小物件”

Koma
 Koma
发布于 2014/10/24 13:37
字数 1227
阅读 1862
收藏 10

1,修改默认的控制器

Yii的默认应用:

所有的配置都可以在main.php中进行配置,那么修改默认的控制器就是在main.php中增加如下代码:

'defaultController' => '', //修改默认控制器

Yii模块:admin模块为例

每个Yii的模块,都会在protected/modules目录下具有单独的文件夹,例如:admin,然后在对应的模块文件夹下存在对应的模块文件,如:AdminModule.php

那么对于模块的修改它的模块控制器则需要在AdminModule.php中进行如下定义:

$this->defaultController = 'index';//修改模块的默认控制器

2,模块的配置文件

Yii的核心思想是尽可能去重复利用现有代码

对于模块中的配置文件,如果你没有指定,那么Yii会找到整个Yii系统共用的配置文件也就是main.php

但是大部分情况下模块中的配置项和整个应用的配置项多少会有一点区别,那么这个时候就需要在模块中去单独的配置这个区别项,所以Yii也想到了这个需求并且也允许你这么做

AdminModule.php中的代码结构如下图:

其中的“init”方法是在模块执行初始化的时候执行的,那么我们对模块的配置项也是在这里进行的

想单独的设置模块的配置文件,则需要在“init”方法中做如下的设置:

这个时候,可能大家发现,我们是通过Yii中的全局对象来改变Yii中的行为的,当然也可以使用它来获取Yii中的相关配置项,不是吗!

3,Yii中的“小物件”

Yii中的View层,采用的模板是原生的PHP代码和HTML混排的方式,这种方式使得View层少去了“解析”的步骤,使得系统的速度有所增加,但是也增加View层代码的编写难度,不过这种难度是相对而言的,通常情况下所有的程序员都能够接受这种方式。

Yii在View层采用这种方式,使得Yii在View层的功能比其它的框架更加强大,其中突出的特点就是它的“小物件

使用Yii的“小物件”可以在视图层方便的创建直接和数据模型关联的表单,也可以方便的创建我们常用的验证码而无需传值,也可以方便的实现数据分页,当然也可以方便的供我们自定义小物件来实现其它的功能。

4,“小物件”之表单初探

想要使用Yii的表单,则首先需要自顶一个一个模型,那在Yii中关于模型有两类,一种是数据不需要保存,用完之后可以直接丢弃的叫:表单模型---CFormModel

另外一种模型则是需要对收集到的数据进行数据库插入的,数据是不会被丢弃的叫:CActiveRecord

那这里我们先是简单的认识表单,并不需要数据,则我们直接建立表单模型即可,

在protected/modules/admin/models文件夹下新建:Article.php,其中代码如下:

然后在控制器中需要将我们的数据模型传递到视图中以便视图可以使用“小物件”来创建表单,控制器代码如下:

此时,我们便可以在视图中来使用小物件创建表单了:

首先,我们使用“小物件”必须要调用“beginWidget”方法,然后指定创建小物件的类,然后根据需要确定是否需要调用“endWidget”方法,例如表单有开始标签还有结束标签则需要调用,但是对于创建验证码img标签则不需要调用

然后我们调用“小物件”的实例“$form”来调用“CActiveForm”类中的方法来创建相应的表单,这里我们以创建一个“文本输入框”为例,其它表单的创建方式一样,需要去查看“CActiveForm”类中相应的方法,直接使用即可。

那么使用“CActiveForm”类中的方法类创建表单时,调用的方法需要传递“三个参数”

第一个参数:“数据模型对象”,也就是我们从控制器中传递过来的数据模型的实例

第二个参数:“表单name属性值”,这里的值必须要和数据库中的字段值一致,如果数据库中没有该值,则需要在数据模型中声明,方法如下图:在Article模型中

那么最终,生成的表单的样式如下:

网页源代码如下:



下一节继续:Yii会员注册功能实现(CActiveRecord类型模型创建、Yii数据库操作



© 著作权归作者所有

Koma
粉丝 61
博文 144
码字总数 106280
作品 1
天津
程序员
私信 提问
加载中

评论(1)

金银花
按照你上面所述我做出来报下面的错
Unable to resolve the request "admin".
不知道那块出错了?????
PHP excel导出乱码问题解决办法

在2003及其它版本导出一切正常,但是在excel2007上导出乱码,处理方法: string format for excel to export. Valid value are 'Excel5','Excel2007','Excel2003XML','00Calc','Gnumeric'. ......

风清扬-深圳
2016/01/15
761
0
Yii入门指导(二):Yii内功修炼

项目名称从“FantaCMS”修改成为“testyii”—————— 俗! 1,项目目录结构分析 2,Yii入口文件分析 在Yii启动项目时,传递了项目主配置文件数组,那么Yii会在整个应用中绑定一个全局的Y...

Koma
2014/10/21
1K
1
Yii入门指导(三):Yii“模块”窥探

1,Yii模块简介 Yii中的模块,可以把它看做成一个单独的应用,它具有独立的控制器、模型、视图以及组件等。 通常情况下,我们使用Yii做WEB项目开发,那么“默认的Yii应用”我们可以作为WEB的...

Koma
2014/10/22
558
0
技术积累笔记概要

2015年11月24日 1、rest 速率限制,写属于自己的方法。 2、actions方法深刻了解。 3、YII技术博客:http://blog.csdn.net/terrywater/article/category/2565815。 4、静态方法传递参数的习惯...

风清扬-深圳
2015/11/24
79
0
yii2 GridView::widget新标签页打开

yii2 使用 GridView::widget 小物件渲染列表,有时候列表上有a标签需要在新标签页打开,如果启用了 pjax后是只能在当前页打开,所以需要设置如下属性才可以在新标签页打开 添加 'data-pjax' ...

ccboo
2017/10/25
27
0

没有更多内容

加载失败,请刷新页面

加载更多

linux 磁盘不足异常

linux 报 No space left on device 异常 ,则是磁盘不足 ,导致异常 运行 df -h 命令查询磁盘使用率,如果有100%,则查找目录大日志文件删除 1.磁盘不足导致系统应用写入文件失败,如系统日志...

zaolonglei
37分钟前
3
0
即学即用的 30 段 Python 实用代码

☞ 分享:最全最新的Python学习大礼包 ☜ 点击查看 编译:Pita & AI开发者,作者:Fatos Morina Python是目前最流行的语言之一,它在数据科学、机器学习、web开发、脚本编写、自动化方面被许...

Object_Man
37分钟前
4
0
The server time zone value 'EDT' is unrecognized or represents more than one time zone.

2019-10-14 18:07:43.714 ERROR 74363 --- [Druid-ConnectionPool-Create-1855026648] com.alibaba.druid.pool.DruidDataSource : create connection SQLException, url: jdbc:mysql://10.30......

yizhichao
51分钟前
8
0
html加载顺序以及影响页面二次渲染额的因素

本文转载于:专业的前端网站➱html加载顺序以及影响页面二次渲染额的因素 浏览器请求发往服务器以后,返回HTML页面,页面内容开始渲染,具体的执行顺序为: 1. 浏览器开始载入html代码,发现<...

前端老手
53分钟前
9
0
BeginnersBook JSP、JSTL、Servlet 教程

来源:ApacheCN BeginnersBook 翻译项目 译者:飞龙 协议:CC BY-NC-SA 4.0 贡献指南 本项目需要校对,欢迎大家提交 Pull Request。 请您勇敢地去翻译和改进翻译。虽然我们追求卓越,但我们并...

ApacheCN_飞龙
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部