При попытке создать конструктор класса в контроллере модуля: «Call to a member function getUniqueId() on null» — вы сталкивались с таким?

Когда вы получаете ошибку "Call to a member function getUniqueId() on null" при попытке создать конструктор класса в контроллере модуля в Yii, это означает, что у вас есть проблема с доступом к объекту контекста модуля.

В Yii, при создании модулей, каждый модуль имеет контекст, который позволяет работать с модулем и его компонентами. Контроллеры модулей наследуются от класса yiibaseController, их уникальный идентификатор должен быть установлен в контексте модуля при его создании. Это позволяет Yii определить, к какому модулю относится контроллер.

Ошибка "Call to a member function getUniqueId() on null" возникает, когда контекст модуля не установлен или отсутствует. Это может произойти, если вы пытаетесь создать экземпляр контроллера модуля вне контекста модуля, например, в обычном контроллере или компоненте приложения.

Для решения этой проблемы вам необходимо установить контекст модуля перед созданием экземпляра его контроллера. Это можно сделать, используя метод setUniqueId() или setId() для установки уникального идентификатора модуля в контексте. Например:

$module = Yii::$app->getModule('yourModuleID');
$module->setUniqueId('yourUniqueID');
$controller = new YourController($id, $module);

В этом примере yourModuleID - это идентификатор вашего модуля, а yourUniqueID - это уникальный идентификатор для контроллера. Вы можете использовать любые значения, которые соответствуют вашей логике.

Установка контекста модуля перед созданием экземпляра контроллера должна решить проблему и предотвратить возникновение ошибки "Call to a member function getUniqueId() on null".