А в консольной конфигурации компонент 'db' настроен?
Не думаю что это имеет отношение к делу (другое дело если бы контейнер вернул не инициализированный инстанс Connect), но, в любом случае, если вы имеете ввиду, настроено ли подключение к БД - да у него рабочая конфигурация.
Вот так работает:
Код: Выделить всё
\Yii::$container->setSingleton('db', function () {
return \Yii::$app->db;
});
\Yii::$container->setSingleton(
UserMembershipDetailsRepository::class,
UserMembershipDetailsRepository::class,
[Instance::of('db')]
);
$repository = \Yii::createObject(UserMembershipDetailsRepository::class);
А вот так нет:
Код: Выделить всё
\Yii::$container->setSingleton(
UserMembershipDetailsRepository::class,
UserMembershipDetailsRepository::class,
[Instance::of('db')]
);
$repository = \Yii::createObject(UserMembershipDetailsRepository::class);
В комментариях к классу
yii\di\Instance есть пример, который, собственно, и натолкнул меня на мысль, что вы еще где-то прописали db.
P.S. есть еще одно отличие от вашего
демо-github-репозитория - у меня Advanced application template, хотя я не думаю, что такие core фичи могут различаться.