yii 使用小技巧
1.db组件 'schemaCachingDuration'=>3600
, 为什么不起做用? 需要开缓存
2.如何在页面下边显示sql的查询时间,在log组件的routes中加入
array(
'class'=>'CProfileLogRoute',
'levels'=>'error, warning',)
同时在db组件中加入 'enableProfiling'=>true,
同时在这种情况下,可以用 CDbConnection::getStats()
查看执行了多少个语句,用了多少时间
3.如何知道某一个程序段运行需要的时间
配置好CProfileLogRoute后,在需要测试的地方加上
Yii::beginProfile('blockID');//程序段Yii::endProfile('lockID');
4.过滤不良代码
$purifier=new CHtmlPurifier;$purifier->options=array("HTML.Allowed" => "div");$content=$purifier->purify($content);
或者
<?php $this->beginWidget('CHtmlPurifier'); ?>…display user-entered content here…<?php $this->endWidget(); ?>
5.如何防止重复提交?
在controller里写 $this->refresh
6.列表如何排序
$criteria=new CDbCriteria();$sort = new CSort('Post');$sort->defaultOrder = "status asc";$sort->applyOrder($criteria);$posts = Post::model()->findAll($criteria);
应用时用
$sort->link('字段名') //实际是生成一个带参数的url,然后在在applyOrder时应用这些参数修改$criteria,得到相应的查寻结果`
7.如何让表单验证不过的提示为中文
在main.php里配置
'language' => 'zh_CN',
8.如何实现仿google的自动完成功能
<?php $this->widget('CAutoComplete', array(
'name' => 'xxx',
'url' => array('suggestTags'),
'multiple' => false,
'htmlOptions' => array(‘size’=>50),)); ?>