这是我的自定义小部件(vendor \ sliderWidget.php):
<?php
namespace Mostafa;
use yii;
class sliderWidget extends \yii\base\Widget {
public function init() {
parent::init();
...
但是当我尝试在视图文件(frontend \ views \ site \ index.php)中使用此小部件时:
<?php
use yii\helpers\Html;
use kartik\icons\Icon;
?>
<?= \Mostafa\sliderWidget::widget();?>
...
我得到了
PHP致命错误 - yii \ base \ ErrorException类'Mostafa \ sliderWidget' 找不到错误
似乎问题是自动加载。我该如何解决这个问题。
答案 0 :(得分:1)
将包含小部件的文件夹放在vendor
文件夹之外,并使用PSR-4标准。
如果这是基于基本项目模板,您可以将其放在/Mostafa
之类的根文件夹中。
如果这是基于高级项目模板,您可以将其放在应用程序的一个文件夹中,如/frontend/Mostafa
。
将Mostafa
文件夹中的窗口小部件类命名为SliderWidget.php
,并正确命名该类(SliderWidget
)。
在此文件中使用正确的命名空间:对于Basic,它是namespace app\Mostafa;
,对于示例中的高级,它是namespace frontend\Mostafa;
现在您可以正确使用此小部件。对于基本:
<?= \app\Mostafa\SliderWidget::widget() ?>
对于示例中的高级:
<?= \frontend\Mostafa\SliderWidget::widget() ?>