Как правильно подключать внешние модули в Yii2?

Пытаюсь подключить Yii2-images. Всё сделал как описано в инструкции:
  1. Установил через composer
  2. Выполнил миграции
  3. Прописал модуль в web.php
  4. Добавил в модель behaviors

В контроллере ProductController пытаюсь использовать метод расширения attachImage, но он подсвечивается, говорит что не знает этот метод.

Вот код контроллера (actionCreate):
public function actionCreate()
    {
        $model = new Product();

        if ($model->load(Yii::$app->request->post()) && $model->save()) {

            $model->image = UploadedFile::getInstance($model, 'image');
            if($model->image)
            {
                $path = Yii::getAlias('@webroot/upload/files').$model->image->baseName.'.'.$model->image->extension;
                $model->image->saveAs($path);
                $model->attachImage($path);
            }
            return $this->redirect(['view', 'id' => $model->id]);
        } else {
            return $this->render('create', [
                'model' => $model,
            ]);
        }
    }

Вот что подключаю в контроллер:
namespace app\modules\admin\controllers;

use Yii;
use app\models\Product;
use yii\data\ActiveDataProvider;
use yii\web\Controller;
use yii\web\NotFoundHttpException;
use yii\filters\VerbFilter;
use yii\web\UploadedFile;


Что может быть не так? Может autoloader не работает или я накосячил с неймспейсами?
  • Вопрос задан
  • 434 просмотра
Пригласить эксперта
Ответы на вопрос 1
@melnikov_m
подсвечивается потому, что это метод behavior, а не класса. Нужно прописать mixin

/**
* @mixin rico\yii2images\behaviors\ImageBehave
*/

тогда методы этого бихейвера будут подсвечиваться как методы класса
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы