Создание своего модуля Class not found

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
Vi_ru_S
Сообщения: 60
Зарегистрирован: 2018.08.14, 07:39
Откуда: Владивосток
Контактная информация:

Создание своего модуля Class not found

Сообщение Vi_ru_S »

Добрый день
пытаюсь создать свой виджет как пакет который можно разместить на git. Запуская страничку на выполнение получаю ошибку Class 'bee\selection\AutoloadExample' not found

Сам widget лежит по пути C:\Server\data\htdocs\bee\backend\runtime\tmp-extensions\yii2-widget-selection\AutoloadExample.php

AutoloadExample.php

Код: Выделить всё

<?php

namespace bee\selection;

/**
 * This is just an example.
 */
class AutoloadExample extends \yii\base\Widget
{
    public function run()
    {
        return "Hello222!";
    }
}
во view в котором пытаюсь вызвать widget
C:\Server\data\htdocs\bee\backend\views\doc-realization\select.php

Код: Выделить всё

<?php

use yii\helpers\Html;
use yii\grid\GridView;
use bee\selection\AutoloadExample;

/* @var $this yii\web\View */
/* @var $searchModel common\models\DocRealizationSearch */
/* @var $dataProvider yii\data\ActiveDataProvider */

$this->title = 'Подбор Номенклатуры';
$this->params['breadcrumbs'][] = $this->title;
?>

<div class="smalcart">
    <span class="glyphicon glyphicon-shopping-cart"></span> <strong>Подобрано:</strong> <span class="picked"><?php echo isset(Yii::$app->session['select']) ? Yii::$app->session['select.qty'] : 0; ?></span> шт.
    <br/><a href=''>Оформить заказ</a>
</div>
<div class="doc-realization-index">

    <h1><?= Html::encode($this->title) ?></h1>
    <?php // echo $this->render('_search', ['model' => $searchModel]);  ?>
    <?php AutoloadExample::widget(); ?>

    <?=
    GridView::widget([
        'dataProvider' => $dataProvider,
        'filterModel' => $searchModel,
        'columns' => [
            ['class' => 'yii\grid\SerialColumn'],
            'id',
            'name',
            [
                'class' => 'yii\grid\ActionColumn',
                'template' => '{add} {create-copy}',
                'buttons' => [
                    'create-copy' => function ($url) {
                        return Html::a(Html::tag('span', '', ['class' => "glyphicon glyphicon-copy"]), $url, ['class' => 'btn btn-success btn-xs', 'title' => 'Добавить копированием']);
                    },
                    'add' => function ($url, $model) {
                        return Html::a(Html::tag('span', '', ['class' => 'glyphicon glyphicon-plus']), '', ['class' => 'btn btn-success btn-xs select-create', 'date-id' => $model->id, 'data-action' => $this->context->id]);
                    },
                ]
            ],
        ],
    ]);
    ?>
</div>
Где что я упустил?
В действительности все иначе чем на самом деле. Антуан де Сент Экзюпери

someweb
Сообщения: 552
Зарегистрирован: 2017.03.09, 10:12

Re: Создание своего модуля Class not found

Сообщение someweb »

Добавьте в composer.json

Код: Выделить всё

    "autoload": {
        "psr-4": {"bee\\selection\\": "backend/runtime/tmp-extensions/yii2-widget-selection"}
    }
Выполните
composer dump-autoload
Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа. Роберт Шекли.

Ответить