去年年末,接触过一阵子的Yii,现在重新拾起来,为了掌握另一种php开发框架。

yii的资料不是很多,大部分都是英文,给学习带来一定的困难,不过这也是一种挑战。

下载安装包,解压到本地,使用yiic命令行工具生成一个webapp的框架。

更改配置文件,换mysql做数据库,开启扩展gii。

建立相关数据库,数据库前缀在配置文件中设置:
‘db’=> array( ……, ‘tablePrefix’ => ‘cfi_’,);

gii的密码可以改为false来禁用密码。

建立数据库,要设置对字段是否允许“空”,否则Yii会检查,字段空就不通过检查。

首先通过gii的Model生成器生成一个Model,然后再使用Crud生成器生成Controller和各种View。一个MVC框架就生成了。

数据库连接查询在Model的Relation中设置,共有4种关系,HAS_ONE,HAS_MANY,BELONGS_TO,MANY_TO_MANY。

举个例子,一个用户可以有多个相册,一个相册只能有一个封面,一个相册可以有多个相片,每个相片有不同的标签。
对于相册来说,和封面是HAS_ONE的关系,和相片是HAS_MANY关系,和作者是BELONGS_TO关系,和标签是MANY_TO_MANY关系。

return array(
‘authora’=>array(self::BELONGS_TO, ‘User’, ‘author’),
作者数组
‘images’=>array(self::HAS_MANY, ‘Image’, ‘folder’),
‘perfaceimage’=>array(self::HAS_ONE, ‘Image’, array(‘id’ => ‘perface’)),
);
用来显示关系数据库使用$data->perfaceimage->title,在zii.widgets.CDetailView中使用perfaceimage.title。

除了关系数据库外,常用的有格式化HTML。
符号转实体的方法是 CHtml::encode()

生成a标签的方法是 CHtml::link(CHtml::encode($folder->name), array(‘folder/view’, ‘id’=>$folder->id), array(target=>’_blank’));第一个参数是显示名称,第二个是string或array类型的,表示URL,后面的是可选。

下一篇笔记讲生成表单。

Leave a reply