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

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

首页 > PHP Framework >

继续我的笔记
1、还是cdbcriteria,其实对于这个类,我在上面折腾了好久。比如:

$cdb = new CDbCriteria();

$cdb->select = 'a,b,c,de';

这时候,这个select中的字段只能是主表的字段,如果你都是*的话,当然无所谓,可以直接在查询后直接$result->joinname->attributes这样调用。但是如果你只想取几个字段,怎么办?

官方的GUIDE上没有相应的例子(是我没有仔细找到),后来,蜘蛛和烂桔告诉我了,一个是说scopes一个是说直接改with,于是我选择了更改with的方法(官方AR那一节,with都是用字符串来代替的。。。),于是就变成了这样

$cdb->with['relationname'] = array('select'=>'c,d,e');

2、这回是LOG。。在LOG中显示当前页面执行的SQL时,把LOG打开就成了。。烂桔建议

PHP代码
  1. 'log'=>array(  
  2.     'class'=>'CLogRouter',  
  3.     'routes'=>array(  
  4.         array(  
  5.             'class'=>'CFileLogRoute',  
  6.             'levels'=>'error, warning',  
  7.         ),  
  8.         array(  
  9.             'class' => 'CWebLogRoute',  
  10.             'levels' => 'profile,trace',  
  11.         ),  
  12.         array(  
  13.             'class' => 'CProfileLogRoute',  
  14.             'levels' => 'profile',  
  15.         ),  
  16.     ),  
  17. ),  
于是在页面执行完后,trace信息就全部打开了,当然正式上线后不能这样操作的。。要关掉的,只要开CFileLogRoute就成了

3、DB,由于trace打开后,如果用了bindParam的话,显示的SQL可能是这样的:

SQL代码
  1. select xx,xx,xx from table where id IN (:yad1,:yad2,:yad3) and id = :id  
看不到实际绑定的值是否正确,这时候最担心的是enum的值传递给SQL是字符串还是INT值。所以,在DB那一块,加上

'enableParamLogging'=>true,

然后在trace里面就可以看到,在显示的SQL后面,多了一个类似bindValue的值。你可以对应着查看一下,传入的值是否与你实际相对应

 

 




本站采用创作共享版权协议, 要求署名、非商业和保持一致. 本站欢迎任何非商业应用的转载, 但须注明出自"膘叔", 保留原始链接, 此外还必须标注原文标题和链接.

Tags: yii, 开发笔记, framework

« 上一篇 | 下一篇 »

只显示10条记录相关文章

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

发表评论

评论内容 (必填):