自定义小部件,加载错误


Yii custom Widget, loader error

请帮助我解决这个问题(我在Windows本地主机上使用Yii, Xampp):

所以…我已经在protected'components'views'Magus.php中创建了一个新的小部件。

 <?php
   class Magus extends CWidget {
   //////////////////////////////
  public function run()
  {
    echo '<p style="color:blue; ">Trallala :) !</p>'; // do something.
  }
    //////////////////////////////
 } //end class

在这里使用("protected/views/layouts/main.php"):

 <?php
   $this->widget('/views/Magus');
 ?>

这会导致loader(?)错误:

Fatal error: include() [<a href='function.include'>function.include</a>]: 
Cannot redeclare class magus in C:'xampp'htdocs'yii'framework'YiiBase.php on line 421

但是,如果小部件文件直接放在"protected'components"中,则不会发生错误。这个错误的原因是什么,如何纠正它?

使用了错误的路径。我建议你把小部件php文件放到protected/components/Magus.php中然后你可以用

从视图中调用它
$this->widget('application.components.Magus');

或者你可以把它保存在你的文件夹里然后这样命名:

$this->widget('application.components.views.Magus');