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),)); ?>

 

原文地址:https://www.cnblogs.com/DaBing0806/p/4638191.html