I just realized that every item saved onto the user record in a DB is available via Yii::$app->user->identity->. I had assumed this was only true with the id.
However, it appears that using Yii::$app->user->identity-> always causes a DB query. Is there any way to store the data into a session automatically when the user is authenticated? When I say this, I don’t just mean with the Login form. I mean that if a user returns to the site with rememberme turned on and they are authenticated without the login form, that the system would not need to run a full DB query on the user table to get information on the user record.
I’m still not sure what happens on the backend to figure out the user’s state is “logged in”. If I could figure out where this happens, I would save all the elements of the user into a session as well as update their last_login_time. Any help would be appreciated.
It is not advisable to store many details of the User object into the session as this can be hijacked easily. If your goal is fast retrieval of data, you should consider caching the record [based on a "change" dependency] per se.