如何在yii2中访问视图文件中的自定义小部件

时间:2017-02-22 08:42:31

标签: php class yii yii2 widget

这是我的自定义小部件(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'   找不到错误

似乎问题是自动加载。我该如何解决这个问题。

1 个答案:

答案 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() ?>