Ich habe ein Registrierungsformular in meiner erweiterten Yii2-Anwendung. In meiner Anwendung kann nur der Administrator Benutzer registrieren. Aber wenn ich einen neuen Benutzer registriere, werden die Admin-Sitzungsdaten zerstört und die Sitzungsdaten eines neuen Benutzers werden gesetzt. Was ich versuche ist, Sitzungsdaten nicht zu ändern, wenn ich einen neuen Benutzer registriere. Der Admin-Benutzer sollte weiterhin auf Sitzungsdaten eingestellt sein. Wie man dieses Problem löst. Dies ist meine Aktion in der Steuerung:Yii2-Anmeldung ohne Speichern der Sitzungsdaten
public function actionSignup()
{
$model = new SignupForm();
if(Yii::$app->user->can('admin'))
{
if (($response = self::ajaxValidate($model)) !== false)
return $response;
if (self::postValidate($model))
{
try
{
$trans = Yii::$app->db->beginTransaction();
if ($user = $model->signup()) {
Yii::$app->getUser()->login($user);
}
//tagidan tushgan odamining child_left, child_right tini o'zgartirish
$under = UserModel::findOne($user->id_parent_under);
if ($under->id_child_left == 0)
$under->id_child_left = $user->id;
else
$under->id_child_right = $user->id;
$under->update(false);
ChildrenBinaryModel::insertNewUser($user);
ChildrenClassicModel::insertNewUser($user);
$parents = ChildrenBinaryModel::find()->with('user')->where(["id_child" => $user->id])->orderBy(['depth' => SORT_ASC])->all();
$c_user = $user;
foreach($parents as $p)
{
$p_user = $p->user;
if ($p_user->id_child_left == $c_user->id)
$p_user->ball_left += 100;
else
$p_user->ball_right += 100;
$p_user->update(false);
$c_user = $p_user;
}
$trans->commit();
}
catch(\Exception $e)
{
$trans->rollBack();
return $this->renderContent($e->getMessage());
}
return $this->render('index');
}
return $this->render('signup', [
'model' => $model,
]);
}else{
throw new ForbiddenHttpException;
}
}
Bitte aktualisieren Sie Ihre Frage mit Ihrem Code. Wie registrierst du diese Benutzer? Zeigen Sie uns die Aktion in Ihrem Controller und alle Methoden Ihres verwendeten Benutzermodells. – Clyff
In meiner Aktion funktioniert alles gut. Ich meine, Daten werden zur Datenbank hinzugefügt und der Benutzer wird angemeldet, wenn Sie einen neuen Benutzer erstellen. Aber zum Beispiel möchte ich einen Benutzer namens Johnny hinzufügen. Aktion wird ausgeführt und dann angemeldet Benutzer auf meiner Website wird Johnny nicht admin. Aber ich versuche zu erreichen, dass Admin noch nach dem Hinzufügen von Johnny protokolliert werden sollte. – Sherzod