我如何在 yii2 的视图文件中访问我的自定义小部件
How can i access my custom widget in view file in yii2
这是我的自定义小部件 (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 Fatal Error – yii\base\ErrorException Class 'Mostafa\sliderWidget'
not found error
看来问题出在自动加载上。我该如何解决这个问题。
将带有小部件的文件夹放在 vendor
文件夹之外并使用 PSR-4 标准。
如果这是基于基本项目模板,您可以将其放在根文件夹中,如 /Mostafa
。
如果这是基于高级项目模板,您可以将它放在应用程序的文件夹之一中,例如 /frontend/Mostafa
.
将 Mostafa
文件夹中的小部件 class 正确命名为 SliderWidget.php
并正确命名内部的 class (SliderWidget
)。
在此文件中使用正确的命名空间:对于 Basic,它是 namespace app\Mostafa;
,对于示例中的 Advanced,它是 namespace frontend\Mostafa;
现在您可以正常使用这个插件了。对于基本:
<?= \app\Mostafa\SliderWidget::widget() ?>
对于示例中的高级:
<?= \frontend\Mostafa\SliderWidget::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 Fatal Error – yii\base\ErrorException Class 'Mostafa\sliderWidget' not found error
看来问题出在自动加载上。我该如何解决这个问题。
将带有小部件的文件夹放在 vendor
文件夹之外并使用 PSR-4 标准。
如果这是基于基本项目模板,您可以将其放在根文件夹中,如 /Mostafa
。
如果这是基于高级项目模板,您可以将它放在应用程序的文件夹之一中,例如 /frontend/Mostafa
.
将 Mostafa
文件夹中的小部件 class 正确命名为 SliderWidget.php
并正确命名内部的 class (SliderWidget
)。
在此文件中使用正确的命名空间:对于 Basic,它是 namespace app\Mostafa;
,对于示例中的 Advanced,它是 namespace frontend\Mostafa;
现在您可以正常使用这个插件了。对于基本:
<?= \app\Mostafa\SliderWidget::widget() ?>
对于示例中的高级:
<?= \frontend\Mostafa\SliderWidget::widget() ?>