Yii自定义Widget,加载程序错误

时间:2011-09-15 17:32:21

标签: php class widget yii redeclare

请帮我解决这个问题(我在Windows localhost上使用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');
 ?>

这会导致加载程序(?)错误:

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”中,则不会发生错误。该错误的原因是什么以及如何纠正?提前谢谢!

1 个答案:

答案 0 :(得分:5)

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

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

或者你可以将它保存在你拥有它的文件夹中并像这样调用它:

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