浏览模式: 标准 | 列表Tag:framework
Submitted by gouki on 2010, November 20, 8:16 PM
续
1、group by 的时候 count,这个字段默认是取不到的。即
PHP代码
- $result = XXX:model()->findAll(
- array(
- 'select'=>'userid,count(*) as cnt',
- 'group' => 'userid'
- )
- );
如果是上述代码,那么sql是对的,但永远取不到cnt这个属性值的,因为show columns的时候,没有cnt这个field,所以它永远不会存在于attributes这个变量里的。那么,怎么打印出这个cnt呢?官方也没有这样的介绍,不过搜索一下论坛,还是有答案的,比如有人就反问曾经一个提问者,did you have a public variable named ‘cnt’?,看到这个反问,我立刻到xxx类里加了一行 public $cnt,然后在获取结果后,用$reuslt->cnt就得到值了。。
后记,其实昨天bobby在测试的时候发现,如果映射到一个存在的字段也可以的。比如cid存在的情况下,count(*) as cid,也可以取到值 ,只是这样会让人很迷惘
2、widget,widget建立起来还算是比较方便的。比如我建一下如下的文件,LinksWidget.php,扔到components目录下,
内容如下:
PHP代码
- class LinksWidget extends CWidget{
- public function init(){
-
- }
- public function run(){
-
- }
- }
如果在这里面用上了 $this->render('links');那么这个render调用的模版和默认的模版无关,它是widget专用的,当然方法都类似。只要你在Widget文件同目录下建一个views文件夹,把render调用的模版扔进去就OK了。(其实,路径可以通过$this->getViewPath()来获取,以便测试。。)
注:widget比较方便,比如说我现在有N个modules,但有一些内容是公用的,我又不想每个程序都写。当然widget是最方便的喽?举例:友情链接。。。。多方便呀
3、模版。。官方的Extenstion中有一些关于smarty的,但如果真的用的不多的话,自带的prado的viewrender就已经很简化了。比如我们常用的<?php echo $xxx ; ?>简化成了 <%= $xxx; %>,如果是<?php if(xxx){ xxx } ?>也可以用<% if():><% xxx ;%><% endif ;%>这样类似的方式来处理。。简化了好多,而且又和PHP语法非常相似。(可以看一下官方手册,介绍的较多。)
Tags: framework, yii, module, 开发笔记
PHP Framework | 评论:0
| 阅读:20294
Submitted by gouki on 2010, January 23, 7:47 AM
断网,这真的让我很惊讶。我想想我的有线通费用是交到今年6月份的,再加上送的一个月,应该是到7月19日,但事实上,它确实是断了。
打电话 96877,发现是说我09年的有线电视费用没交,一般来说,上海这边有线电视费都是过完年后交的吧?我什么单子和通知都没有收到,就突然的关掉了。
原来机顶盒的功能是这样的呀,以后要当心了。有机顶盒的朋友要注意啊,说不定哪天你想看的电视节目就突然间被停掉了。【机顶盒的功能不是为了让你多看一些电视节目,而是为了让他们方便管理。可恨的是机顶盒需要经常升级,如果你晚上关掉机顶盒,有的时候升级失败的话,你就看不到电视了。只是不知道IPTV是否能看电视,如果能的话,倒情愿装IPTV了。算下来IPTV的费用也和有线通+有线电视费用差不多了】
我继续问,我的有线通费用是交了的呀。他说不行只要有一样停了。那么所有的都要停,我就觉得不可思议了,如果我以后不看电视怎么办?难道网也不让我上了?客服的回答却偏偏 就是这样。如果不用有线电视,那以后也不能用有线通。
让他退款吧。人说现在是停机状态,你只能先去营业厅开通或者做其他处理也行。想想就郁闷 。
有线电视停就停呗,我还能看所谓的6个台的。也够我看了,但你凭什么把我网络也给断了?
莫名其妙
Tags: 有线
Misc | 评论:2
| 阅读:18256
Submitted by gouki on 2009, October 25, 8:06 AM
昨天把笔记本带到学校去用的时候,发现用了半小时突然提示没电,一直以为是电池长时间插着充电,需要激活的原因。
于是晚上回来进行了一次电池重置,到早上还没有结束。就关闭了。
然后把电源拔掉使用,又是半小时,突然提示没电。这才发现电池好象坏了。
把电池的型号进行搜索,发现居然是联想召回电池中的一款。郁闷啊。下载了测试软件进行测试,还真的有提示:http://batteryprogram.lenovo.com/ljbr/ValidateQuery.aspx?mt=7674&mm=HE1&ms=LV16N17&bbc=532FA251B4CE0B3FB64F4A4702A8735EBFE2999865874C5D9B6B6B640066B95772BC3ADD8C281AD19B6664CBB74E11C14BDF1DE7FFA60B0E0EAACA1BBC27569A&bf=1755C8FE9BDD2EC3920C06111C622AC6CEF389C52338E39AEAB73E19ACA96915C41A0E08E67B67ABCEB9AE50B5B256AC8F97E8E1ECD63BE2653136121D6C7DDC&ll=zh
准备打电话,可心里紧张,毕竟是水货。唉。。。。早知道不买水货了,购买商的素质又低,换根电源线都要拖个一星期。
如果不能召回更换,只能淘宝购买了。。。
Tags: 联想, thinkpad, 42t4568
Misc | 评论:0
| 阅读:18163
Submitted by gouki on 2009, June 1, 10:45 PM
其实这些东西都是根据网上的资料来解决的。
那些下载字符串,在去除协议后,都是采用BASE64加密过,所以,先解密一下,再处理,就很方便了。
其中,迅雷是在解密后的字符串两头加了“AA”和“ZZ”两个字符串
flashget则是加了[FLASHGET]标签
QQ则最简单,啥也没加,解密后就能用。
flashget在处理前,需要先把&以后的字符串全部清空再作Base64的解密转换。
不多说,源码如下:
PHP代码
- function decode ( $string )
- {
- $exp = explode( "://", $string );
- $type = strToLower( $exp[0] );
- if ( $type == 'thunder' ){
- return str_replace(array("AA","ZZ"),"",base64_decode( $exp[1] ));
- }else if ( $type == 'flashget' ){
- $exp[1] = subStr( $exp[1], 0 , strPos( $exp[1], '&' ) );
- return str_ireplace("[flashget]","",base64_decode( $exp[1] ));
- }else if ( $type == 'qqdl' ){
- return base64_decode( $exp[1] );
- }
- }
PHP | 评论:1
| 阅读:21577
Submitted by gouki on 2009, May 4, 9:01 AM
最近一段时间,飞信可以说是被人研究的很彻底呀。估计中国移动是笑的咧不开嘴了。
虽然用飞信软件的人不是特别多,但根据飞信协议做二次、三次开发的并不少,好象很多应用都与原来飞信想法不太一样,但这有什么关系呢?用户数才是王道。
Open Fetion -- Implement Fetion Protocol with PHP,是一个SF上的项目,用PHP来实现飞信功能,具体使用方法如下:
Usage: fetion [options] user_mobile password
fetion [options] user_mobile password sendto_sid content
* if no sendto_sid specified, all available sid will be displayed
* you can not send sms to yourself
* use sid as 'sendto_sid' instead of mobile number or fetion number
-p
Tags: fetion, protocol
PHP | 评论:0
| 阅读:20523