文档章节

Yii入门指导(二):Yii内功修炼

Koma
 Koma
发布于 2014/10/21 15:08
字数 938
阅读 1285
收藏 7

项目名称从“FantaCMS”修改成为“testyii”—————— 俗!

1,项目目录结构分析

2,Yii入口文件分析

在Yii启动项目时,传递了项目主配置文件数组,那么Yii会在整个应用中绑定一个全局的Yii对象并且可以通过如下方法来调用该对象:Yii::app()

Yii系统把配置文件中的数组值,通过键值对的形式绑定到了该对象上,例如在配置文件中我们配置了:

'name'=>'My Web Application',

那么我们在项目的任何一个地方通过该对象的属性就可以获取到“name”的值,方法为:

Yii::app()->name;

3,Yii路由设置

同时应该知道:对于控制器名,Yii首先会检测当前的控制器名是否是一个“模块名”,如果是模块名则先定位到模块。

“模块”会在后面搭建项目的时候解释。

通过上面的路由访问到的就是:SiteController.php类文件下的SiteController类中的actionIndex方法

控制器文件位于:protected/controllers 目录下,也就是我们的控制器文件存放目录

注意Yii中控制器文件和动作方法名的书写方式,控制器有统一的后缀”Controller“,动作方法也有统一的前缀”action“,同时要求动作方法名的命名规范符合”除第一个单词外其它每个单词的首字母要大写“

由于Yii默认的控制器名为:site

默认的动作名为:index

因此上述通过指定控制器名动作名访问的路径和直接访问:http://localhost/testyii/   的效果是一致的

4,视图调用

在动作方法中,调用:$this->render('index');

来为对应的动作方法指定视图文件,视图文件位于:protected/views/site  目录下

其中:site为对应的控制器名文件夹,每个控制器名在视图中都应该具有一个唯一的文件夹名与其相对应

然后在动作方法中通过‘index’来指定显示的具体视图文件是site控制器下的指定的‘index.php’视图文件

另外还需要注意:

调用视图的方法有两个:

$this->render                            ----> 会调用模板文件

$this->renderPartial                   -----> 不会调用模板文件

它们之间的区别,也如上所述。

5,视图模板设置

打开SiteController.php文件,其中的代码截图如下:

我们发现:Yii应用中,每个控制器都要继承自公共控制器“Controller”

然后打开“Controller”控制器文件:Controller.php,它位于:protected/components  目录下

Controller”控制器代码截图如下:

Yii通过:public $layout='//layouts/column1'; 来指定动作方法的公共模板文件

公共模板文件位于:protected/views/layouts 目录下,如下图:

现在我们来创建我们的模板文件:testlayout.php,代码如下:

其中”<?php echo $content; ?>“为Yii中规定的模板文件中的内容替换方法

然后,修改 ”Controller“控制器中的模板文件为:public $layout='//layouts/testlayout';

然后访问:http://localhost/testyii/index.php?r=site/index    结果如图:

然后我们发现,模板文件已经变成我们自己指定的了,然后假如你不需要视图文件渲染模板文件,那么你可以在动作方法中调用视图文件的时候使用:$this->renderPartial  方法

或者你整个项目都不需要调用模板文件,那么你可以在动作方法中调用视图文件时全部用:$this->renderPartial 

也或者将视图模板文件设置为”空“,例如:public $layout='';


下一节继续:Yii的魔术师:gii,Yii模块及模块自定义


© 著作权归作者所有

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

评论(1)

飞飞尔尔
很适合新手,不错,简单明了,省时省力
Yii入门指导(四):强大的“小物件”

1,修改默认的控制器 Yii的默认应用: 所有的配置都可以在main.php中进行配置,那么修改默认的控制器就是在main.php中增加如下代码: 'defaultController' => '', //修改默认控制器 Yii模块:...

Koma
2014/10/24
1K
1
yii2项目实战-博客管理平台的搭建

作者:白狼 出处:http://www.manks.top/document/yii2-blog-manage.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律...

白狼栈
2016/08/13
160
0
Yii2 模块化调用Module失败

一、错误信息如下: Unknown Class – yii\base\UnknownClassException Unable to find 'app\modules\user\UserModule' in file: E:\www\test\basic/modules/user/UserModule.php. Namespac......

joson_chan
2015/09/23
4.8K
1
Yii入门指导(三):Yii“模块”窥探

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

Koma
2014/10/22
558
0
YII之yiic创建YII应用

yii提供了强大的命令行工具来快速的创建相关组件和应用。 下面就来讲解用yiic工具快速创建yii应用 我的web目录在 d:www下 yiiframework在 D:wwwyiiframework win平台 cd 进入 wwwyiiframewor...

freedonn
2014/07/30
81
0

没有更多内容

加载失败,请刷新页面

加载更多

从AnnotationTransactionAspect开始rushSpring事务

0. Spring 事务 with LTW 0.1. Spring 事务 With LTW的原因: Pure Proxy-base mode有缺陷,其失效原因分析及使用方法及运行机制(LoadTimeWeaverBeanDefinitionParser和 AspectJWeavingEnable......

Aruforce
16分钟前
3
0
mac 安装protobuf 2.5.0

下载安装包 目前protobuf的最新版本是3.9.1,但是hadoop等好多框架依然依赖的是2.5.0,因此,最好不要安装最新的。 https://github.com/protocolbuffers/protobuf/releases/tag/v2.5.0 编译安...

hexiaoming123
21分钟前
4
0
Qt编写自定义控件52-颜色下拉框

一、前言 这个控件写了很久了,元老级别的控件之一,开发之初主要是自己的好几个项目要用到,比如提供一个颜色下拉框设置对应的曲线或者时间颜色,视频监控项目中经常用到的OSD标签设置,这个...

飞扬青云
28分钟前
4
0
Shell脚本应用 – for、while循环语句

通过Shell脚本应用(二)学习到了if条件条件语句的使用方法等。Shell作为一种脚本编程语言,同样了包含了循环,分支等其他程序控制结构,从而能够轻松完成更加复杂、强大的功能。我们今天就来...

Linux就该这么学
34分钟前
5
0
Sqoop之导入到Hive时特殊字符导致数据变乱

问题是这样的: Sqoop从关系型数据库导入数据到Hive时,发现数据量增多了,查找之后发现是由于源数据中含义\r\t\n特殊字符的数据,这样Hive遇到之后就将其视为换行,所以导入到Hive后数据条数...

克虏伯
35分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部