手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜Qcloud , 注册 | 登陆

Yiiframework(Yii框架)开发笔记:续三

首页 > PHP Framework >


1、group by 的时候 count,这个字段默认是取不到的。即

PHP代码
  1. $result = XXX:model()->findAll(  
  2.     array(  
  3.         'select'=>'userid,count(*) as cnt',  
  4.         'group' => 'userid'  
  5.     )  
  6. );  

如果是上述代码,那么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代码
  1. class LinksWidget extends CWidget{  
  2.     public function init(){  
  3.         //相当于beginWidget  
  4.     }  
  5.     public function run(){  
  6.         //相当于endWidget  
  7.     }  
  8. }  

如果在这里面用上了 $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, 开发笔记

« 上一篇 | 下一篇 »

只显示10条记录相关文章

Yii CDbCriteria的常用方法 (浏览: 44115, 评论: 5)
常用网站的反向代理页[2013-09-28] (浏览: 36568, 评论: 10)
将Yiiframework与JQuery easyUI整合使用 (浏览: 27749, 评论: 2)
Yii:relations update(self::STAT) (浏览: 24103, 评论: 0)
QEE PHP 发布 (浏览: 23573, 评论: 5)
ZendFramewok介绍 (浏览: 20824, 评论: 0)
Fleaphp介绍(在迟来的QeePhp前的最后介绍) (浏览: 20517, 评论: 0)
使用ZendFramework的时候打印SQL (浏览: 18981, 评论: 0)
Yii Demos 随想 (浏览: 18954, 评论: 3)
值得收藏的yii2的doc中关于db Query的说明 (浏览: 18952, 评论: 0)

发表评论

评论内容 (必填):