关于Yii框架的基础知识
第一次写博文,也不知道怎么写,不太熟悉,带小伙伴学习一样我日常使用的Yii框架。
PHP中的开发框架有很多,比如:ThinkPHP、Yii、CI、Laravel、Phalcon等。现在流行度最高的是Laravel框架,鉴于公司用的是Yii框架,就讲一讲Yii框架的基础操作。希望写好的就借鉴,写的不好的可以向我提出建议。
1.Yii框架是一个有MVC思想的框架,Model、View、Controller。该框架由美籍华人开发,相对于其他框架来说是一个重量级的框架。Yii框架有脚手架功能,可以自动生成目录结构(但一般情况下我都不用)。
2.脚手架功能
利用Yii脚手架功能,生成目录结构
(1)、打开命令提示符窗口(Win7以管理员方式打开)
(2)、切换到项目中的framework文件夹里
(3)、输入如下命令,生成目录
yiic webapp ../app
错误提示:"php.exe" 不是内部或外部命令,
解决办法:将php的安装目录,配置到系统的path环境变量中
path环境变量的位置:我的电脑->属性->高级->环境变量->系统变量->Path
变量名:Path
变量值:adsfasdfasdfas;D:\php5.4
注意:必须把命令提示符窗关闭,重新打开
3.Yii的项目目录
app--------------------应用程序目录
assets---------------第三方资源包*******
css------------------样式表*******
images---------------图片*******
protected------------应用程序
commands-----------系统命令
components---------组件目录(自定义类)*******
Controller.php---所有控制器的父类
config-------------配置文件夹*******
main.php---------全局配置文件
controllers--------控制器*******
data---------------数据库脚本*******
extensions---------扩展类
messages-----------翻译过的信息
migrations---------数据库移植文件
models-------------模型*******
runtime------------运行时
views--------------视图*******
layouts----------布局文件夹
themes---------------主题目录
index.php------------入口文件
framework--------------yii资源包
4.命名规则
控制器的命名规则
(1)、必须采用大驼峰的命名规则
(2)、必须以Controller来结尾
IndexController.php
LoginController.php
控制器中方法的命名
(1)、必须采用小驼峰的命名规则
(2)、必须以action来开头
actionIndex()
actionAdd()
actionInsert()
actionLogin()
模型的命名规则
(1)、必须采用大驼峰的命名规则
(2)、必须以表名来命名
BbsInfo.php
Reviews.php
5.修改配置文件
(1)、设置默认控制器
"defaultController"=>"控制器/方法",
"defaultController"=>"index/index",
(2)、设置url的路由,开启pathinfo
/*
"urlManager"=>array(
......
),
*/
去掉上边代码的注释
(3)、设置数据库的配置信息
/*
"db"=>array(
......
),
*/
去掉上边代码的注释,并修改数据库信息
6.控制器显示指定的视图
(1)、显示指定的视图,但不调用布局文件
$this->renderPartial("视图名");
$this->renderPartial("视图名",array(名=>值,名=>值...));
注:array数组是将值传给视图
(2)、显示指定的视图,但调用布局文件
$this->render("视图名");
$this->render("视图名",array(名=>值,名=>值...));
(3)可以使用include包含页面
include($this->viewpath ."/index.php");
7.数据库操作
(1)、查询多条记录,返回:二维数组
$result = $model->findAll();
$result = $model->findAll("条件");
$result = $model->findAll(array(
"condition"=>"条件",
"order"=>"排序",
"offset"=>起始值,
"limit"=>条数
));
$result = $model->findAllBySql("select语句");
(2)、删除记录,返回:受影响的行数
$result = $model->deleteAll();
$result = $model->deleteAll("条件");
$result = $model->deleteByPk(主键);
(3)、查询一条记录,返回:一维关联数组
$result = $model->find();
$result = $model->find(条件);
$result = $model->findByPk(主键);
$result = $model->findBySql("select语句");
(4)、修改记录,返回:受影响的行数
$result = $model->updateAll(一维关联数组);//修改表中的所有记录
$result = $model->updateAll(一维关联数组,条件);//改符合条件的记录
$result = $model->updateByPk(主键,一维关联数组);
(5)、添加记录,返回:受影响的行数
$model->字段名 = 字段值;
$model->字段名 = 字段值;
$model->字段名 = 字段值;
$result = $model->save();
(6)、执行select语句,返回:二维数组
$db = Yii::app()->db;
$st = $db->createCommand("select语句");
$rs = $st->queryAll(); //获得所有记录
(7)、执行select语句,返回:一维数组
$db = Yii::app()->db;
$st = $db->createCommand("select语句");
$rs = $st->queryRow(); //获得一条记录
(8)、执行insert、update、delete语句,返回:受影响的行数
$db = Yii::app()->db;
$st = $db->createCommand("insert|update|delete语句");
$result = $st->execute();
(9)、count查询 返回:数字
$result = $model->count();
$result = $model->count(条件);//查询符合条件的记录
$result = $model->countBySql("select语句");
注:Yii框架对聚合函数的封装只有count(),若想使用其他的聚合函数则用eg:
$result = $model->countBySql("select max(clickTimes) from bbsInfo");
其实在使用时候有很多也是灵活的,并不是那么死板。今天暂时分享到这里了,还会有后续分享哦
关于Yii框架的基础知识的更多相关文章
- Vue框架之基础知识
在没有学习基础知识之前,我们需要下载vue的js文件,在使用vue语法之前引包 <script src='./vue.js'></script> 一.模板语法 模板语法是一种可 ...
- QTP自动化测试框架的基础知识
1. 什么是自动化测试框架? 假定你有一个活,需要构建许多自动化测试用例来测试这个应用程序.当你对这个应用程序完成自动化测试后,你对自己创建脚本应该有什么期望吗?你难道不想要- 脚本应该按照预期的来执 ...
- TP框架---thinkphp基础知识
php框架 发瑞 一.真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困 ...
- 【大数据】了解Hadoop框架的基础知识
介绍 此Refcard提供了Apache Hadoop,这是最流行的软件框架,可使用简单的高级编程模型实现大型数据集的分布式存储和处理.我们将介绍Hadoop最重要的概念,描述其架构,指导您如何开始使 ...
- Django学习---Web框架及基础知识
Django学习---Web框架 web框架的本质 我们在学socket,我们创建一个socketserver,然后运行起来,有一个client客户端要连接socket服务端,连接上之后,如果两边都没 ...
- SpringMVC框架的基础知识;
首先 在javaEE环境下,建立一个动态的web工程: 导入架包.... 建立一对多映射关系的封装类,这儿只写属性,getter和setter方法就不写了: 1: private String pro ...
- jQuery框架-1.基础知识
jQuery简介 jQuery,顾名思义是JavaScript和查询(Query),jQuery是免费.开源的.它可以简化查询DOM对象.处理事件.制作动画.处理Ajax交互过程且兼容多浏览器的jav ...
- Monkey框架(基础知识篇) - monkey事件介绍
Monkey所执行的随机事件流中包含11大事件,分别是触摸事件.手势事件.二指缩放事件.轨迹事件.屏幕旋转事件.基本导航事件.主要导航事件.系统按键事件.启动Activity事件.键盘事件.其他类型事 ...
- Monkey框架(基础知识篇) - monkey启动与参数介绍
一.monkey启动 直接PC启动:> adb shell monkey [options] <count> shell 端启动:> adb shell >monkey ...
随机推荐
- flex中日期的格式化
今天我做的项目中需要把时间给拆分了,形式为:yyyy-MM-DD HH mm, 下面是我的代码实现: <?xml version="1.0" encoding="u ...
- 移动web页面支持弹性滚动的3个方案
有段时间一直折腾移动端页面弹性滚动的各种问题,做了点研究,今天做个小分享~ 传统 pc 端中,子容器高度超出父容器高度,通常使用 overflow:auto 可出现滚动条拖动显示溢出的内容,而移动we ...
- Hive分区(静态分区+动态分区)
Hive分区的概念与传统关系型数据库分区不同. 传统数据库的分区方式:就oracle而言,分区独立存在于段里,里面存储真实的数据,在数据进行插入的时候自动分配分区. Hive的分区方式:由于Hive实 ...
- 【Electron】Electron开发入门(三):main process和web page 通信
一.main process 和 web page 通信 electron框架主进程(Main Process)与嵌入的网页(web page,也就是renderer process)之间的通信 Ma ...
- C#研究OpenXML之路(1-新建工作簿文件)
一.写在开头 一直想沉下心来研究研究OpenXML编程,可是由于公司编程项目一笔接一笔,很难静下来,所以一直是采用的COM操作Excel.现在终于得闲,特将心得历程记录下来. 今天的第一个实例代码是来 ...
- .net mvc------下拉列表DropDownList控件------绑定数据
下拉列表 以性别为例 绑定可以了,可以显示了,但有些地方就能传值,有些地方就会出错提示,如有大神请指教.... 错误如下: 具有键"sex"的 ViewData 项属于类型&quo ...
- asp.net core源码飘香:Configuration组件
简介: 这是一个基础组件,是一个统一的配置模型,配置可以来源于配置文件(json文件,xml文件,ini文件),内存对象,命令行参数,系统的环境变量又或者是你自己扩展的配置源,该组件将各个配置源的数据 ...
- css定位流布局
上面我们一起研究了浮动布局的特点和如何清除浮动给布局带来的不良影响,今天我们继续来研究定位流布局的特点和一些常用的布局技巧. 定位流主要有三种,一是相对定位,二是绝对定位,三是固定定位:下面我们一一进 ...
- axure 动态面板制作图片轮播 (01图片轮播)
利用Axure的动态面板组件制作图片轮播: 首先现在操作区添加一个动态面板组件: 鼠标放在动态面板上,右键单击选择面板状态管理,给动态面板设置名称并添加两条状态然后点击确定. 双击动态面板,然后双击s ...
- OCR文字识别帮助录入文字信息
OCR文字识别是指将图片.照片上的文字内容,直接转换为可编辑文本的过程.目前各行各业不断地应用文字识别产品,解决文字录入工作的烦恼,提高工作效率. OCR文字识别用在哪里? 一个做社区工作的朋友透露, ...