去年年末,接触过一阵子的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,后面的是可选。

下一篇笔记讲生成表单。

使用openwrt内置的网络摄像头服务时,出现501: Not Implemented! no www-folder configured 错误。

在网上查到了一篇帖子

https://forum.openwrt.org/viewtopic.php?id=38239

其中有下面一段话:

The error about the missing webui is normal, those files are not included with the OpenWRT package.  To test if its working try the following URLs, changing routerip to what is relevant for your configuration.

Streaming (probably only works in Mozilla based browsers) http://routerip:8081/?action=stream
Snapshot image (should work in any browser) http://routerip:8081/?action=snapshot

If you want the webUI then you need to download a copy of mjpg_streamer and put the www files somewhere on your router storage.  Then edit /etc/init.d/mjpg-streamer adding the -w parameter pointing to the webUI files.

错误的原因是openwrt没有包含mjpg-streamer中的www部分,所以找不到文件,就出错了。

解决办法

1用火狐访问 http://routerip:8081/?action=snapshot
火狐自动识别为mjpg流

2下一份mjpg-streamer的源码,把www部分丢到路由器上,在mjpg-streamer的启动代码中的输出部分加上 -w 参数来指定www目录位置

http://sourceforge.net/projects/mjpg-streamer

亲测可用!