Yii custom Widget, loader error

Please, help me with this problem (I am using Yii, Xampp on a Windows localhost):

So... I've created a new widget in "protectedcomponentsviewsMagus.php".

 <?php
   class Magus extends CWidget {

   //////////////////////////////
  public function run()
  {
    echo '<p style="color:blue; ">Trallala :) !</p>'; // do something.
  }
    //////////////////////////////

 } //end class

It's used here ("protected/views/layouts/main.php"):

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

And this causes a loader (?) error:

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

But the error doesn't happen, if the widget file is placed directly in "protectedcomponents". What is the reason of that error and how to correct it ? Thank you in advance !


You use wrong paths. I suggest you to put your widget php file into protected/components/Magus.php and then you can call it from view with

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

Or you can keep it in folder where you have it and call it like this:

$this->widget('application.components.views.Magus');
链接地址: http://www.djcxy.com/p/69722.html

上一篇: 只更改yii小部件的css文件,保存此文件的位置

下一篇: Yii自定义Widget,加载器错误