Użytkownicy w dwóch modelach

Jak zrobić dwa typy użytkowników (przechowywane z dwóch osobnych tabelach), aby globalnie korzystać z tabeli X, a w jednym module z typu Y. Trzeba zmieć nazwę "identityClass", ale jak zrobić, aby nie logować automatycznie np. użytkownika z tabeli X w module?

W metodzie init() modułu możesz dodać mechanizm nadpisujący komponent user z config. Moduł będzie korzystał wtedy ze wskazanej klasy przy wywoływaniu Yii::$app->user




Yii::$app->setComponents([

    'user' => [

        // ...

    ]

]);



To wiem jak zrobić, problem w tym, że jeżeli zaloguje się na użytkownika o np. ID 10 to w module będzie zalogowany na użytkownika o ID 10 z tabeli Y, a w pozostałej części będę zalogowany na użytkownika o ID 10 z tabeli X.

Nie jestem pewien na 100% i dobrze by było, gdyby ktoś to zweryfikował, ale wydaje mi się, że klasa z tożsamością nie zmieni się sama bez przelogowania użytkownika pomiędzy modułami. Jeśli potrzebujesz pobrać dane użytkownika aktualnie zalogowanego i nie wiesz, którego komponentu aktualnie używa, zawsze możesz wywołać Yii::$app->user->identityClass.

Niestety, ale się zmienia się.

Spróbuj w obu konfiguracjach podać inny $idParam. Wtedy w module powinieneś być zalogowany, a poza nim nie i na odwrót.