Seb*_*ian 1 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
Run Code Online (Sandbox Code Playgroud)
它在这里使用("protected/views/layouts/main.php"):
<?php
$this->widget('/views/Magus');
?>
Run Code Online (Sandbox Code Playgroud)
这会导致加载程序(?)错误:
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
Run Code Online (Sandbox Code Playgroud)
但是如果窗口小部件文件直接放在"protected\components"中,则不会发生错误.该错误的原因是什么以及如何纠正?先感谢您 !
你使用错误的路径.我建议你把你的widget文件放入protected/components/Magus.php,然后你可以从视图中调用它
$this->widget('application.components.Magus');
Run Code Online (Sandbox Code Playgroud)
或者你可以将它保存在你拥有它的文件夹中并像这样调用它:
$this->widget('application.components.views.Magus');
Run Code Online (Sandbox Code Playgroud)