Yii框架学习笔记.docx

上传人:b****0 文档编号:17615611 上传时间:2023-07-27 格式:DOCX 页数:38 大小:29.08KB
下载 相关 举报
Yii框架学习笔记.docx_第1页
第1页 / 共38页
Yii框架学习笔记.docx_第2页
第2页 / 共38页
Yii框架学习笔记.docx_第3页
第3页 / 共38页
Yii框架学习笔记.docx_第4页
第4页 / 共38页
Yii框架学习笔记.docx_第5页
第5页 / 共38页
Yii框架学习笔记.docx_第6页
第6页 / 共38页
Yii框架学习笔记.docx_第7页
第7页 / 共38页
Yii框架学习笔记.docx_第8页
第8页 / 共38页
Yii框架学习笔记.docx_第9页
第9页 / 共38页
Yii框架学习笔记.docx_第10页
第10页 / 共38页
Yii框架学习笔记.docx_第11页
第11页 / 共38页
Yii框架学习笔记.docx_第12页
第12页 / 共38页
Yii框架学习笔记.docx_第13页
第13页 / 共38页
Yii框架学习笔记.docx_第14页
第14页 / 共38页
Yii框架学习笔记.docx_第15页
第15页 / 共38页
Yii框架学习笔记.docx_第16页
第16页 / 共38页
Yii框架学习笔记.docx_第17页
第17页 / 共38页
Yii框架学习笔记.docx_第18页
第18页 / 共38页
Yii框架学习笔记.docx_第19页
第19页 / 共38页
Yii框架学习笔记.docx_第20页
第20页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Yii框架学习笔记.docx

《Yii框架学习笔记.docx》由会员分享,可在线阅读,更多相关《Yii框架学习笔记.docx(38页珍藏版)》请在冰点文库上搜索。

Yii框架学习笔记.docx

Yii框架学习笔记

Yii框架:

1

Day011

1、安装1

1.2安装yii框架及自动生成project1

2.目录结构:

1

3.url地址规则:

2

4.控制器编写规则:

2

4.2Controller方法:

2

4.2.2生成url地址2

4.2.3跳转提示3

《例1.1》添加文章表单分析3

《例1.2》NewsController.php----actionAdd()3

《例1.3》add.php3

《例1.4》---->数据处理actionSave()4

《例1.5》actionOper()4

《例1.6》model5

Day025

1.C层编写规则:

(复习)5

2.基类提供的方法:

(复习)6

3.V层编写:

6

3.1分组6

3.1.1、修改配置文件gii6

3.1.2、浏览器url地址输入***/index.php?

r=gii6

3.1.3、说明:

6

4.M层7

4.1、数据库连接如何实现7

4.2、数据模型类封装的规则7

4.3学习基类CActiveRecord的方法:

7

4.3.1查询7

4.3.1.1例子:

8

4.3.2增8

4.3.3删9

4.3.4改9

Day039

1.分组(复习)9

2.m层封装:

10

2.1规则10

《例2.1》model层News.php10

2.2基类CActiveRecored的方法:

10

2.2.1增10

2.2.2删11

2.2.3改11

2.2.4查11

《例2.2》NewsController.php12

3.后台访问控制:

13

《例3.1》indexController14

4表单的生成(助手类CActiveForm):

15

4.1生成表单元素15

《例4.1》自动生成注册页面16

《例4.2》提示语变成中文:

labelEx(17

5.数据验证:

18

《例5.1》functionrules()18

5.2会员模块实例(会员管理删除屏蔽审核):

19

《例5.2.1》userController19

《例5.2.2》user-->oper.php20

Day0321

1.分页21

1.1分页(步骤)21

《例1.1》分页的实现22

《例1.2》oper.php22

2.验证码23

2.1在控制器中加actions方法23

《例2.1》23

2.2模板上显示:

24

《例2.2》24

2.3、比较24

3.图片上传24

3.1方法:

24

3.1.1构造方法,指定文件保存的目录,大小,类型24

3.1.2保存文件upload()遍历$_FILES,返回值bool25

3.1.3获取文件信息25

3.1.4获取文件的报错信息25

Yii框架:

(基于MVC框架)

Day01

1、安装

解压

使用yiic.php安装,yiic运行,不是通过url地址。

通过cmd窗口运行php程序?

1、跳转工作目录到php.exe所在的目录

2、php.exe-r"php语句;"

echo'123';

运行一个php程序

php.exe-f"php文件的路径"

运行yiic.php

php.exe-fF:

/psd1511/www/14_yii/framework/yiic.php

webappF:

/psd1511/www/14_yii/shop

win8win7win10打开cmd窗口以管理员身份。

具体安装

1.2安装yii框架及自动生成project

1.解压源码包复制framwork文件(与项目文件同级)

2.在开始--->cmd--->右键cmd.exe--->点击以管理员身份运行

3.找到php5.4安装目录下的php.exe===>复制路径D:

\php-5.4.0-Win32-VC9-x86

4.在cmd中输入:

cdD:

/php-5.4.0-Win32-VC9-x86

5.在cmd中运行php.exe;找到yiic.php文件目录webapp

6.Php.exe-fF:

/psd1511/www/14_yii/framework/yiic.php

webappF:

/psd1511/www/14_yii/project

2.目录结构:

assets静态文件jsupload

css样式文件目录

images图片文件夹

protected

runtime

controllers

views

models

index.php

3.url地址规则:

http:

//localhost/14_yii/shop/index.php?

r=site/contact

4.控制器编写规则:

1、protected/controllers/XxxController.php

2、类名和类文件名同名

3、继承基类Controller

4、方法名actionXxx()

指定默认的控制器及方法:

'defaultController'=>"控制器/方法"

'defaultController'=>"方法"

4.2Controller方法:

传值

显示模板

$this->render("模板名称"[,array()]);

渲染了布局

公共内容,拆分在一个文件中,文件叫布局文件。

布局文件:

imponents/Controller.php

public$layout='//layouts/my';

模板的路径:

views/控制器名/模板名称.php

$this->renderPartial("模板名称"[,array()]);

特点:

不渲染布局

4.2.2生成url地址

$this->createUrl("分组/控制器/方法",array('id'=>5));

4.2.3跳转提示

提示

Yii:

:

app()->user->setFlash('名称',"message");

作用:

产生提示语

Yii:

:

app()->user->getFlash("名称");

作用:

获取提示语

Yii:

:

app()->user->hasFlash("名称");

作用:

判断一个提示语是否存在

跳转:

$this->redirect("url地址");

header("location:

url地址");

《例1.1》添加文章表单分析,

提交,数据处理,提示跳转,列表页中显示结果。

添加文章的表单:

NewsController.php

|

actionAdd()

|

add.php---->数据处理actionSave()

|判断标题非空,添加成功

|产生提示语

|

actionOper()

|显示提示语

|显示文章列表

Oper.php

《例1.2》NewsController.php----actionAdd()

classNewsControllerextendsController{

//public$layout="//layout/my";//重写公共部分

functionactionAdd(){

$this->render('add');

}

《例1.3》add.php

phpecho$this->createUrl("News/save");?

>"method="post">

标题
内容
分类:

行业动态

常见问题

相关问题

 

《例1.4》---->数据处理actionSave()

functionactionSave(){

if(!

empty($_POST['title'])){

//提示语

yii:

:

app()->user->setFlash('info',"添加成功");

}else{

yii:

:

app()->user->setFlash('info',"添加失败");

}

//跳转

$this->redirect($this->createUrl("News/oper"));

}

《例1.5》actionOper()

functionactionOper(){

//获取文章列表数据

$newsob=News:

:

model();

$cob=newCDbCriteria;//管理字段类

$cob->select="id,title";//字段列表

$cob->order="iddesc";//排序

$cob->offset="0";

$cob->limit="5";

//$cob->group="";//分组

$arr=$newsob->findAll($cob);

$this->render("oper",array('arr'=>$arr));

}

《例1.6》model

php

classNewsextendsCActiveRecord{

public$title;

public$type;

public$content;

public$addtime;

publicstaticfunctionmodel($className=__CLASS__){

returnparent:

:

model($className);

}

publicfunctiontableName(){

return"{{news}}";

}

}

Day02

url规则:

***/index.php?

r=分组名/控制器/方法&id=5

1.C层编写规则:

(复习)

1、protected/controllers/XxxController.php

2、类名和类文件名同名

3、继承Controller

4、方法名actionXxx

public$layout="//layouts/名";

'defaultControler'=>"控制器/方法"

2.基类提供的方法:

(复习)

render("模板名称",array())

renderPartial("模板名称",array())

createUrl("分组/控制器/方法",array('id'=>5))

提示

Yii:

:

app()->user->setFlash("名","值");

Yii:

:

app()->user->getFlash('名');

Yii:

:

app()->user->hasFlash('名');

跳转

redirect("url")

3.V层编写:

直接嵌套php标签,对变量进行处理,显示页面。

3.1分组

3.1.1、修改配置文件gii

'modules'=>array(

//uncommentthefollowingtoenabletheGiitool

'gii'=>array(

'class'=>'system.gii.GiiModule',

'password'=>'123456',

//Ifremoved,Giidefaultstolocalhostonly.Editcarefullytotaste.

'ipFilters'=>array('127.0.0.1',':

:

1'),

),

),

3.1.2、浏览器url地址输入***/index.php?

r=gii

3.1.3、说明:

后台默认的控制器,DefaultController,默认的方法actionIndex

访问的布局文件是protected/views/layouts/main.php

public$layout="//";

//----protected/views/layouts

/-----protected/modules/admin/views/layouts

4.M层

4.1、数据库连接如何实现

'db'=>array(

'connectionString'=>'mysql:

host=localhost;dbname=project',

'emulatePrepare'=>true,

'username'=>'root',

'password'=>'root',

'charset'=>'utf8',

'tablePrefix'=>'',

),

测试连接是否成功:

Yii:

:

app()->db

4.2、数据模型类封装的规则

protected/models/表名.php

例子:

News.php

a.类名和类文件名一致

b.必须继承CActiveRecord类

c.必须有一个静态方法

publicstaticfunctionmodel($className=__CLASS__){

returnparent:

:

model($className);

}

指定表名称

publicfunctiontableName(){

return"{{表名}}";

}

双花括号作用,加前缀。

产生对象

4.3学习基类CActiveRecord的方法:

4.3.1查询

$modelOb=find($condition[,$params])查询一条记录

$arr=$modelOb->attributes;

string$modelOb->字段名;

findAll($condition[,$params])查询多条记录

findByPk($pk)根据主键id值,获取一条记录

findAllByPk(array(pk1,pk2,pk3))根据主键id值,获取多条记录

4.3.1.1例子:

文章列表

倒序orderbyiddesc

sql语句的子句,靠CDbCriteria

$cOb=newCDbCriteria();

$cOb->select="";//字段列表

$cOb->order="iddesc";//排序

$cOb->condition="";//条件子句

$cOb->params=array();//给占位符绑定数据

$cOb->group="";//分组

$cOb->having="";//分组筛选

$cOb->alias="";

$cOb->join="";//多表联查

$cOb->limit="";//长度

$cOb->offset="";//指定的是开始位置

例子:

产品列表id,title,addtime,tname,显示分类的名称

selectp.id,p.title,p.addtime,t.tnamefromproductasp

jointypetonp.tid=t.idlimit0,10

count()//获取记录总数

4.3.2增

$mOb=new类名();//?

?

?

_new=true;

$mOb->字段名=值;

$re=$mOb->save()

//获取主键id值

int$mOb->getPrimaryKey();

例子:

添加文章

4.3.3删

实例化数据模型类

$mOb=new类名()

$mOb=类名:

:

model();

$mOb->findByPk(pk);

bool$mOb->delete();

//没有参数,怎么指定删除谁。

//删除谁,找到谁。

$mOb->deleteByPk($pk);

4.3.4改

findByPk(pk)

update($arr)

//没有参数来指定条件,修改谁,找到谁。

updateByPk(pk,$arr)

PDO预处理

query()

exec()

$pdoS=prepare("select*fromnewswhereid=:

id");

bool$pdoS->execute(array(':

id'=>5));

$arr=$pdoS->fetchAll(PDO:

:

FETCH_ASSOC);

Day03

1.分组(复习)

1、配置gii

2、修改密码

3、index.php?

r=gii

4、按提示操作

默认的布局

控制器中,public$layout="/layouts/admin";

默认控制器方法:

DefaultController

actionIndex()

分组admin的入口文件AdminModule.php中,修改init(){

$this->defaultControler="Index/index";

}

2.m层封装:

2.1规则

1、protected/models/Xxx.php

2、文件名和类名一致

3、继承CActiveRecord

4、publicstaticfunctionmodel($className=__CLASS__){

returnparent:

:

model($className);

}

publicfunctiontableName(){

return"{{表名}}";

}

《例2.1》model层News.php

php

classNewsextendsCActiveRecord{

public$title;

public$type;

public$content;

public$addtime;

publicstaticfunctionmodel($className=__CLASS__){

returnparent:

:

model($className);

}

publicfunctiontableName(){

return"{{news}}";

}

}

2.2基类CActiveRecored的方法:

2.2.1增

$mOb=new类名();

有数据

$mOb->字段名=值;

......

执行增加操作

bool$mOb->save();

int$mOb->getPrimaryKey();//获取主键id

2.2.2删

$mOb=new类名();

$ob=$mOb->findByPk($id);

$re=$ob->delete();

$mOb->deleteByPk($id);

2.2.3改

$mOb=类名:

:

model();

$ob=$mOb->findByPk($id);

$ob->update($arr)

$mOb->updateByPk($id,$arr)

2.2.4查

$mOb=类名:

:

model();

$mOb->find(condition,params)

array$mOb->findAll(condition,params);

$ob=$mOb->findByPk(pk);

获取对象中的记录:

$ob->字段名

$ob->attributes

$cOb=newCDbCriteria();

$cOb->select=""

$cOb->order="";

$cOb->condition=""

$cOb->params=array()

$cOb->group=""

$cOb->having=""

$cOb->offset="";

$cOb->limit="";

$cOb->join="";

$cOb->alias="";

《例2.2》NewsController.php

php

classNewsControllerextendsController{

public$layout="/layouts/admin";

functionactionAdd(){

$this->render("add");

}

functionactionSave(){

//var_dump($_POST);

$newsOb=newNews();

$newsOb->title=$_POST['title'];

$newsOb->type=$_POST['type'];

$newsOb->content=$_POST['content'];

$newsOb->addtime=time();

$re=$newsOb->save();

if($re){

Yii:

:

app()->user->setFlash("info","文章添加成功");

}else{

Yii:

:

app()->user->setFlash("info","文章添加失败");

}

$this->redirect($this->createUrl('News/oper'));

}

functionactionOper(){

//获取文章列表数据数据,带有分类名称

$newsOb=News:

:

model();

$cOb=newCDbCriteria();

$cOb->select='id,title,type';

$cOb->order="iddesc";

$cOb->offset=0;

$cOb->limit=10;

$arr=$newsOb->findAll($cOb);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 研究生入学考试

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2