手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表Tag:yii

Yiiframework(Yii框架)开发笔记

一点小小的笔记
1、三表关联,一个用户有一个扩展信息表,也拥有一个商铺,于是relations方法是这样的
  商铺:array('member'=>array(self::BELONGS_TO,'Member','member_id'))
  用户:array('shop'=>array(self::HAS_ONE,'Shop','member_id'),'extends'=>array(self::HAS_ONE,'MemberExtends','member_id'))
  扩展:array('member'=>array(self::BELONGS_TO,'Member','member_id'))

然后开始用Shop::model()->find("shop_id = 1");查询,理论上应该不会有错,但事实上还是错了,报CActiveFinder 758行错误。查了很久发现其实没有问题,但就是报错,一点点的修改也不行。然后问google,也查不出什么具体原因,然后根据报错的信息所在行猜测,因为他是foreach( $this->_pkAlias ....)这一行,说是foreach出错,那我想是不是因为主键问题?于是三个表一个个的查看结构,结果还真的发现了member_extends表,居然没有主键。哦,卖糕的。。。这种事情也有?于是给它把自增字段加上了主键索引,然后再调试。OK鸟。

我日,都自增字段了还不设主键?NND,折腾了我一下午啊。。。

2、获取attributes值

根据取回来的结果,当然要获取值喽,查看手册可以了解到,只要设了select,那么取回来的就是指定字段,多余的字段,虽然也存在于attributes数组中,但都是空值(只是觉得这样浪费了点空间。。。)

3、where条件

where条件是字符串。。如果需要加,那就用CDbCriteria吧,$criteria = new CDbCriteria(); $criteria->addCondition("a=:a");$criteria->params[':a']=$a;

主要是可能会有判断条件,所以参数变量跟在addCondition后面吧。。

 

Tags: yii, 开发笔记, framework

Yiiframework为每个module单独指定db连接

Yii的module功能确实很方便,但现在的问题在于,我需要为每个module单独指定一个数据库连接,这样我就可以将不同的系统整合在一起了。找了不少资料,好象都没有这样类似的功能。master/slave之类倒是有不少类似的整合方案的。

测试了一下,发现可以这样操作,即在全局配置文件中的module里为module加上components中加上db,然后就基本OK了。但即使这样,你还是会发现不太正常,会提示db不存在,其实需要在这个db数组中加上class=>CDBconnection就一切OK了。会自动加载的哦。(烂桔在这里帮了不少忙)

然后数据连接就是Yii::app()->getModules('modulename')->db。【不过他在这里说的是findModules,我看了一下,getModules就直接可以用了。HOHO】

如果你有master和slave,也可以按照这样的配置,然后再在onBeforeFind方法里设定db=Yii::app()->getModules('module')->readerDb之类的。并在onAfterFind后再置 db为write的链接。(感谢HM提出方案)

如果有多个slave,又想使用同一个slave缓存,则可以先随机取得slave的名称。然后存入session,然后再指定链接。这样,每一个用户使用的slave就会是唯一的。其实提高了效率(感谢神仙提出来)

Tags: framework, yii, module

乱弹

随便的扯几句喽。。。
1、ipad ,突然发现sbsetting的功能超强大啊。。我明明在ipad里选择了飞行模式,居然可能通过sbsetting打开wifi。而且飞行模式的小飞机居然还存在。牛叉的。。

2、电视连续剧《儿女冤家》,突然感觉里面的情节好真实,这是自《蜗居》以来又一个让人心动的电视。看到电视里的人物,心里觉得好揪心,啃老族这一个词已 经成了一个很让人烦的词语。有的时候,我也觉得自己也算一个啃老族 啊。工作这么多年,也成家了,却几乎没有拿过一分钱回过家。看到电视里的那对儿女,却是比我还厉害。不但吃父母用父母还要占父母的房子。唉。。。。。因为 没有看过结局,所以我就不再多下评论了。

3、乔楚乔大姐,又想带队翻译PHP手册了。感觉乔楚还算是很专注的一个人,但事实上,翻译这种事情,一定要对PHP很深入才能翻译,否则翻译出来很可能 词不达意。所幸他们还会再做校验。同时乔楚发邮件给官方,并收到邮件,终于也可以使PHP中文版在下载列表里显示出来了。(都2年多了,中文手册一直被雪 藏。。感谢乔楚)

4、Yii,最近我在看着Yii,并且根据Yii的代码抄一遍。这样感觉一来可以学习Yii的代码,可以更深入一点。二来,也可以了解Yii的一些设计思 想。Yii的代码还算是比较多的,而且多了一些zii,gii之类的扩展,功能是越来越强大了。只是Yii已经只支持PDO了。准备在抄的过程中还是要支 持一下默认的mysql扩展。(因为有的虚拟主机在命令行的时候,不支持PDO,很妖)

Tags: yii, 儿女冤家, 手册, ipad

将Yiiframework与JQuery easyUI整合使用

jquery easyUI框架是国内某JS牛人写的仿extJS的框架。比较简单的实现一些功能,虽然目前还是有一些BUG,但将就着用用,也还能够接受。
YiiFramework是国内某PHP牛人写的php框架,哦,好象人不在国内。最近用的人较多。本人比较喜欢他们提供的虚拟机(只有16M,当然,安装后达到100多M)

随便的整合了一下,目前是这个情况。

大小: 47.73 K
尺寸: 500 x 302
浏览: 2491 次
点击打开新窗口浏览全图

几个问题需要注意一下的

1、layout的时候要注意。因为easyUI框架里面的页面也需要用到jquery,因此在布局的时候得考虑header部分

2、登录框,与1的条件相关

3、$this->render与$this->renderPartial ,renderPartial是不渲染任何模版的。如果你不想用layout的时候,可以用这个renderPartial方法

其它的就属于一些小事了,比如菜单可以用json_encode输出之类的。前两天还写了一个jquery easyUI这个outlook式的menu改进。

整体用下来还算比较方便

Tags: yii, jquery, easyui

Yii documents

这两天一直在看Yii框架,也下载了一份API手册,却发现API手册里只有方法的介绍,却没有具体的调用方法,如果是纯方法的话,说实话,我还情愿用IDE的自动完成来查看呢。当然有个API手册在查询的时候会比较方便一点。

那么,有没有真正的manual呢?到官网的documentation分类去看了一下,NND,一堆 英文,不过,在我犀利的眼神下,还是发现了这玩意:The Definitive Guide to Yii ,点开一看,原来这才是类似于PHP手册的manual呀。可惜能够下载的只有PDF版本。更可恨的是,也只有英文版的,算了,将就点吧。。。虽然英文烂了点,一些简单的东西还是能够看得懂的。

如果初学Yii,还是建议看一下这个guide:The Definitive Guide to Yii ,它,有中文版,在:http://www.yiiframework.com/doc/guide/zh_cn/index

左边的树的目录也很清晰,值得一观,不过更建议的是多看一下:http://www.yiiframework.com/doc/guide/zh_cn/basics.application,我最初就是没看这个,一下子不知道如何调用Cache,都想在代码 new Cache之类的了。

--EOF--

后记:感谢烂桔推荐的:http://dreamneverfall.cn/yiidoc/index.htm,烂桔的网站为:http://iorange.cc

Tags: yii, 重构