如何防止yii2在调用Yii::$app->;时执行select查询;用户->;id


how prevent yii2 to execute select query when ever call Yii::$app->user->id

当我使用时

Yii::$app->user->id

Yii::$app->user->isGuest 

Yii2执行SELECT * FROM用户WHERE id ='4'

如何防止重复查询以优化我的web应用程序
缓存或定义全局会话变量等等。

启用一个受支持的缓存,并用替换您在评论中提到的代码return static::findOne(['id' => $id]);

$db = self::getDb();
return static::getDb()->cache(function ($db) use ($id) {
    return static::find()->where(['id' => $id])->one();
});

有关更多详细信息,请参阅http://www.yiiframework.com/doc-2.0/guide-caching-data.html