Comment ajouter plus de l'identité de l'utilisateur les attributs de session dans Yii2?
Dans Yii2 vous pouvez accéder à l'identité de l'interface pour l'utilisateur actuel à l'aide de la identityInterface objet dans l' \yii\web\Utilisateur de la classe avec quelque chose comme ça
\Yii::$app->user->identity->id;
Est-il un moyen d'obtenir et de définir des paramètres supplémentaires (sans l'extension de l'identité de classe)?
Fondamentalement un équivalent de Yii 1.x getState()
, et setState()
méthodes de CWebUser
pour stocker et récupérer des informations de session comme ceci
Yii::app()->user->setState("some_attribute",$value);
Yii::app()->user->getState('some_attribute',$defaultValue);
Vous devez vous connecter pour publier un commentaire.
D'accord, il semble que cela a été supprimé intentionnellement pour éviter la "confusion". Voir https://github.com/yiisoft/yii2/issues/167. Donc, la seule façon de le faire par la convocation de la séance de classe directement.
Parce que maintenant stockées directement dans la session sans préfixe, il est préférable d'espace de noms les touches avec les identifiants comme
user.xxxx
pour éviter la collision avec un autre jeu de clés à différents point de l'application.La meilleure façon d'ajouter des attributs à l'utilisateur est la création d'attribut public dans votre Classe d'Utilisateur.
Comment utiliser:
Dans Yii2 \Yii::$app->user->identité contenir instance de la identityClass. Donc, si vous voulez un peu de identityClass données liées à l' - il suffit de l'utiliser comme exemple de la identityClass.
Vous pouvez également utiliser un getter fonction pour inclure d'autres informations d'identité de l'utilisateur. Par exemple, récupérer
fullname
à partir d'une table de profil.Ensuite, vous pouvez l'utiliser comme si vous avez un attribut nommé
fullname
, comme