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

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条记录相关文章

php pack()函数详解与示例 (浏览: 63488, 评论: 10)
mongodb删除索引 (浏览: 40086, 评论: 0)
linux 查找目录或文件 (浏览: 36911, 评论: 1)
ZendFramewok介绍 (浏览: 33622, 评论: 0)
Fleaphp介绍(在迟来的QeePhp前的最后介绍) (浏览: 32507, 评论: 0)
RabbitVCS 用后感 (浏览: 31772, 评论: 0)
何为RBAC (浏览: 31313, 评论: 4)
Yiiframework(Yii框架)开发笔记:续四 (浏览: 28318, 评论: 3)
zendframework 1.6终于将SOAP放进去了 (浏览: 26276, 评论: 0)
看上去不错:Chrome 扩展 Monster (浏览: 25525, 评论: 2)

发表评论

评论内容 (必填):