@artem78

Как вызвать метод из поведения при инициализации контроллера в Yii2?

В поведении объявлен метод, который нужно выполнить в контроллере при его инициализации.

Код поведения:
<?php

namespace app\behaviors;

use yii\base\Behavior;
use yii\helpers\BaseFileHelper;
use app\models\Module;

class ModuleDispatcherBehavior extends Behavior {
    private function updateModules() {
        // ...
    }
}


В контроллере вызываю updateModules() в init:
<?php

namespace app\commands;

use Yii;
use yii\console\Controller;
use mgcode\helpers\TimeHelper;
use app\behaviors\ModuleDispatcherBehavior;

class ModuleDispatcherController extends Controller
{
    public function behaviors() {
        return [
            ModuleDispatcherBehavior::className()
        ];
    }

    // ...

    public function init() {
        parent::init();

        $this->updateModules();
    }
}


Почему в таком случае я получаю ошибку о том, что метод updateModules не существует?
  • Вопрос задан
  • 479 просмотров
Решения вопроса 1
eastywest
@eastywest
Backend developer
Метод updateModules() объявлен как private. Объявите его как public и у вас все заработает.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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