roger
(Roger Happy8)
1
一个奇怪的问题:
<?php echo CHtml::link(''); ?>
<!-- HTML CODE -->
<?php $this->widget('TopMembers') ?>
<!-- HTML CODE -->
我如果把<?php echo CHtml::link(''); ?> 放在 widget的后面,或者注释掉 CHtml这一行,就会出现下面的错误:
Fatal error: Class 'CHtml' not found in D:xampphtdocsprotectedlibraryYiiviewszh_cnexception.php on line 8
空白页中只有这一个错误。 异常跟踪也失踪了.
麻烦看下是我哪里的错误引起的.
谢谢!
qiang
(Qiang Xue)
2
你有没有用APC或其它caching? 这个问题很有可能是bytecode cache引起的。
roger
(Roger Happy8)
3
没有用到任何caching
只是PHP配置里开启了APC.
我的config/main.php 也是使用 blog的, 只是加入了CWebLogRoute和CProfileLogRoute
qiang
(Qiang Xue)
4
把APC关掉试试。在开发阶段,启用APC常常会出现类似问题。
roger
(Roger Happy8)
5
关掉了. 还是一样的问题. 我的系统里没有其他的caching了.
roger
(Roger Happy8)
6
我检查了其它的使用 widget的地方, 也并没有写到 CHtml. 只有这一个会这样
可能是我有的地方弄错了. 但这个异常这样报出, 很迷糊
qiang
(Qiang Xue)
7
的确比较奇怪。错误肯定是发生在你的widget里。
但是我很奇怪为什么PHP会说找不到CHtml。
这样吧,你把下面这句话加到你的controller class前面,看看到底是什么错误:
Yii::import('system.web.helpers.CHtml', true);
roger
(Roger Happy8)
8
灵异事件发生了:
我把原来的CHtml的链接注释掉, 把你给的这句话放在原来的位置, 刷新成功.
然后再这句话放到controller. 刷新成功.
我把这句话注释掉 ===> 又成功了~~~
现在我把这两段代码都去掉了, 页面刷新成功了.没有问题了…
qiang
(Qiang Xue)
10
你是怎么关闭APC的?不能只是简单的restart apache。要先shutdown然后start。
roger
(Roger Happy8)
11
我用的XAMPP的 controller panel.
先点击 "STOP",
再点击 "START"
并且确定了phpinfo()中的APC是关闭的