先来上一个yii的视频教程,我传到网盘里的,有需要的可以下载,这里分享下:yii视频教程,
点击不了的复制地址吧:http://www.kuaipan.cn/share.htm?s=pZrmc4rW2FYTTKFk-AOYA(gAAVqc=
?
1、要使用YII命令行操作,先修改framework/yiic.bat
? ? if "%PHP_COMMAND%" == "" set PHP_COMMAND=php.exe的绝对路径
2、创建第一个程序
? ? 命令:% yii/framework/yiic webapp /www/app
3、yiic shell错误提示
? ? Error: index.php does not exist or is not an entry script file.
? 解决方法:
? ? yiic shell ../../index.php //找到index.php文件
4、修改项目文件夹 protected/config/main.php
? ? 如果用Gii,去掉Gii的注释
? ? 默认数据库配置为sqlite,注释掉sqlite的配置,下面是mysql的配置,去掉注释
? ? 数据库后面写上要用的表名前缀 ?如'tablePrefix' => ?'tbl_',
5、利用Gii创建模型(Model)
? ? 访问Gii:http://localhost/blog/index.php?r=gii
? ? 输入密码,点Model Generator
? ? 一个数据表对应一个Model
6、实现CRUD操作
? ? Gii页面,转到Crud Generator
? ? 需要哪个模型实现CRUD操作就一个一个写上去生成
?
7、路由:http://localhost/yiidemo/index.php?r=user/login
?
8、创建一个控制器:UserController.php ? views文件夹也要有一个user文件夹
?
9、render是调用layout渲染一个view,并显示出来。
? renderPrtial直接显示一个view。
? renderText是显示一个静态的string字符串
?
10、修改布局文件:protected/components/Controller.php ?public $layout='//布局文件目录/布局文件名';
?
11、测试yii框架是否有连接上控制器
? ? 在控制器里面随便一个地方输出:var_dump(Yii::app()->db)
?
? ? Yii::app():Yii框架是纯OOP框架,每次web请求,相当于通过创建一个对象,让对象调用相关方法执行。对象是我们框架应用的核心对象,我们也可以通过代码获得这个应用对象(Yii::app())
?
12、find()会产生一条记录信息,其会返回一个直接对象出来
? ?我们可以通过对象调用自己的属性直接获得具体商品信息
? ?对象->属性;
?
? ?findAll() ?返回了一个数组,里边有好多对象元素信息,用foreach遍历然后才能输出
? ?find() ?直接返回了一个对象,可以通过对象获得具体商品信息。
?
? ?通过sql语句获得信息:fandAllBysql($sql)
?
13、表单处理
?
? ? <form>开始:<?php $form = $this->beginWidget('CActiveForm'); ?>
? ? </form>结束:<?php $this -> endWidget(); ?>
?
? ? //表单前面的名字(用户名:、商品名之类的,不过是用英文表示)
? ? <?php echo $form->labelEx($model,'字段名'); ?>
? ? //表单的输入框
? ? <?php echo $form->textField($model,'字段名',array('size'=>60,'maxlength'=>128)); ?>
? ? //表单的文字域
? ? <?php echo $form->textArea($model,'字段名',array('cols'=>30,'rows'=>5)); ?>
?
? ? checkBox():复选框
? ? dropDownList():下拉列表
? ? redioButton():单选按钮
? ? listBox():列表框
? ? passwordField():密码框
? ? fileField():上传控件
?
14、模型有两个关键方 ?/**
?
? ? 创建数据模型model对象
? ? new Goods(); ? ?调用save()方法的时候执行insert语句
? ? Goods::model(); 调用save()方法的时候执行update语句
?
?
? ? ?* 返回当前模型对象的静态方法
? ? ?* @param string $className
? ? ?* @return CActiveRecord
? ? ?*/
? ? public static function model($className = __CLASS__){
? ? ? ? return parent::model($className);
? ? }
?
? ? /**
? ? ?* 返回当前数据表的名字
? ? ?* @return string
? ? ?*/
? ? public function tableName(){
? ? ? ? return '{{数据表名,不带前缀}}';
? ? }
?
? ? 另外,表单前显示的中文要用attributeLabels()
? ? ?public function attributeLabels(){
? ? ? ? ? ? ?return array(
? ? ? ? ? ? ? ? ?'字段名' => '显示的中文名'
? ? ? ? ? ? ?);
? ? ?}
?
15、把数据传递到模版方法
? ? $this->render('模版名',array('传递的名字'=>需要传递的变量,......))
?
16、yii数据添加三个步骤
?
?
? ? 一、创建对象模型
? ? ? ? $model = new 模型类名;
? ? 二、要添加的字段数据
? ? ? ? $model -> 字段名 = '数据';
? ? ? ? $model -> 字段名 = '数据';
? ? ? ? $model -> 字段名 = '数据'
? ? 三、调用save()方法实现数据添加
? ? ? ? if($model -> save()){
? ? ? ? ? ? echo 'success';
? ? ? ? }else{
? ? ? ? ? ? echo 'fail';
? ? ? ? }