Wie melde ich mich mit zwei verschiedenen Modellen an oder wechsle die Identitätsklasse in yii2?

Ich möchte die Benutzeranmeldung von zwei verschiedenen Modellen zulassen.

Config.php

'user' => [
        'identityClass' => 'app\models\User', //one more class here
        'enableAutoLogin' => false,
        'authTimeout' => 3600*2,
    ],

LoginForm.php

 public function rules()
{
    return [
        // username and password are both required
        [['username', 'password'], 'required'],
        // rememberMe must be a boolean value
        ['rememberMe', 'boolean'],
        // password is validated by validatePassword()
        ['password', 'validatePassword'],
    ];
}

 public function validatePassword($attribute, $params)
{
    if (!$this->hasErrors()) {
        $user = $this->getUser();

        if (!$user || !$user->validatePassword($this->password)) {
            $this->addError($attribute, Yii::t('user', 'Incorrect username or password.'));
        }
    }
}

public function login()
{
    if ($this->validate()) {
        return Yii::$app->user->login($this->getUser(), $this->rememberMe ? 3600*24*30 : 0);
    } else {
        return false;
    }
}

public function parentLogin()
{
    // How to validate parent Login?
}

public function getUser()
{
    if ($this->_user === false) {
        $this->_user = User::findByUsername($this->username);
    }

    return $this->_user;
}

User.php

class User extends \yii\db\ActiveRecord implements IdentityInterface
{
    public static function tableName()
   {
    return 'users';
   }

   public static function findIdentity($id)
  {
    return static::findOne($id);
  }

  public static function findByUsername($username)
 {
    return static::findOne(['user_login_id' => $username]);
 }

Controller.php

 public function actionLogin()
{
    // Working
}

public function actionParentLogin()
{
    $model = new LoginForm();

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

            $parent = ParentLogin::find()->where(['p_username' => $model->p_username])->one();
        if($parent){
            \Yii::$app->session->set('p_id',$parent->p_id);
            return $this->redirect(['parent-dashboard']);
        }
        else
        {
            Yii::$app->getSession()->setFlash('error', Yii::t('site', 'Incorrect username or password.'));
        }
    }
    return $this->render('parent-login', [
            'model' => $model,
        ]);
}

Ich weiß nicht, wie ich die Elternanmeldung validieren soll. Ich habe stundenlang versucht, eine Problemumgehung zu finden, aber es gelang mir nicht.

Ich bin fest aufYii::$app->user->login($this->getUser(), $this->rememberMe ? 3600*24*30 : 0); weil die Benutzertabelle keine übergeordneten Anmeldedatensätze hat.

Meine Frage

1) Ist es möglich zwei @ zu habidentityClass. Wenn ja, wie?
2) Ist es möglich, @ zu verlängeParentLogin model toUser. Wenn ja, wie validieren?

Verweis

Wie erweitere ich die Benutzerklasse?
Anpassen der CWebUser-Klasse
Custom userIdentity Klasse in yii2

Antworten auf die Frage(4)

Ihre Antwort auf die Frage