有什么方法可以缓存身份?在我的代码中,我有多个关于用户个人资料的数据库查询。我认为应该是一种对其进行缓存以防止多个请求的方法。
yii::$app->user->identity
答案 0 :(得分:0)
身份应该已经在请求的上下文中进行了缓存(每个请求仅一个查询)。
如果要在请求之间缓存身份,则可以在user
组件的findIdentity()
类的$identityClass
实现中实现缓存:
public static function findIdentity($id) {
return static::find()->cache(60)->where(['id' => $id])->one();
}
但是通常不值得麻烦-使用主键的一个简单查询应该确实非常快,将其缓存不会给您带来可衡量的性能提升,尽管它可能会产生一些与缓存有关的怪异错误。