资源描述:
《yii创建实例常见问题》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1.执行yiic命令提示’php.exe’不是内部或外部命令…的解决方法这个问题困扰我好久,解决的方法是把php.exe这个目录加入系统环境变量,这样就不会提示这样的错误了!还有个问题就是每次执行yiic命令时要把yiic的全路径打出来才行,比如我的yii框架在e:/htdocs里面,我每次执行的时候都要>e:/htdocs/yii/yiicwebappyiiblog我们可以把yiic也加入系统环境变量,加入以下代码:假如php.exe这个目录在C:phpC:php;E:htdocsyiiframework此时我们执行yiic再不用打全路径了,
2、这样方便多了.>yiicwebappyiiblog2.使用"framework/yiicshell"时报错:[root@framework]#./yiicshellError:index.phpdoesnotexistorisnotanentryscriptfile.解决方法:framework>yiicshell../../index.php其中“../../index.php”yii根目录的文件夹下的index.php,之后就ko了。3.时区错误:就是要到yii的根目录下去执行。运行YII框架出错可能是时区设置有问题。解决方法:比如我们建了一个mybl
3、og应用,那么到myblog/protected/views/layouts/main.php加入以下设置:一、从yii权威指中学到的db组件'schemaCachingDuration'=>3600,为什么不起做用?需要开缓存如何在页面下边显示sql的查询时间在log组件的routes中加入array('class'=>'CProfileLogRoute','levels'=>'error,warning',)同时在db组件中加入'enableProfiling'=>true,
4、同时在这种情况下,可以用CDbConnection::getStats()查看执行了多少个语句,用了多少时间如何知道某一个程序段运行需要的时间配置好CProfileLogRoute后,在需要测试的地方加上Yii::beginProfile('blockID');//程序段Yii::endProfile('blockID');'enableParamLogging'=>true,的作用是?在日志的bind的参数后边跟数的值如何在页面底部显示所有的db相关的日志同上,配置log组件的routes中加入array('class'=>'CWebLogRoute',
5、'levels'=>'trace,info,error,warning','categories'=>'system.db.*',//'showInFireBug'=>true,将在firebug中显示日志),把日志记录到数据库array('class'=>'CDbLogRoute','logTableName'=>'applog','connectionID'=>'db',),运行时表applog会自动生成,如果不能生成,参照api自已建立如何记录$_GET,$_SESSION等信息,在以上的routes中各个配置中加上'filter'=>'CLogFi
6、lter',如何记录更详细的信息,能记录stack,在入口文件中加上define('YII_TRACE_LEVEL',10);数字越大,记当的越详细,结果如下[15:31:57.226][trace][system.db.CDbCommand]QueryingSQL:SHOWCOLUMNSFROM`Bangdan`inE:APMServ5.2.6wwwhtdocsdayouhui.comprotectedmodelsBangdan.php(21)inE:APMServ5.2.6wwwhtdocsdayouhui.comprotect
7、edcomponentsHotBangdan.php(21)inE:APMServ5.2.6如果在调试时,终止程序运行且看到日志,不能用die及exit;用application::end,即Yii::app()->end(),其会触发onEndRequest事件,日志就是在这个事件中记录的activeRecord几个占位方法重写的注意点必须带boolean返回值如何发布一个资源文件并引用$css=Yii::app()->getAssetManager()->publish(dirname(__FILE__)."/aa.css");yii::app(
8、)->clientScript->registerCssFIle(