php – Yii2:如何缓存ActiveRecord关系产生的查询

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – Yii2:如何缓存ActiveRecord关系产生的查询脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我有新闻表及其相关的news_comment表.
我已经用news_comment表定义了关系newsComment.

如果我执行此查询

$result = News::getDb()->cache(function () use($id) {
    return News::find()->wITh('newsComment')->where(['news.id' => $id])->one();
});

只缓存从新闻表中获取数据的查询.从相关表中选择的查询不是.

是否可以缓存执行的主查询查询以从相关表中检索数据,而无需单独编写它们?

试试这个:
$db = News::getDb();
$result = $db->cache(function ($db) use ($id) {
  $query = new \yii\db\Query;
  $query->select("news.*,newsComment.*") // write table name for newsComment model and also in join
        ->From('news')
        ->leftjoin('newsComment','newsComment.id=news.PRoduct_id')
        ->where(['news.id' => $id])
        ->one();

  $command = $query->createCommand();
  $result  = $command->queryAll();

  return $result;

});

脚本宝典总结

以上是脚本宝典为你收集整理的php – Yii2:如何缓存ActiveRecord关系产生的查询全部内容,希望文章能够帮你解决php – Yii2:如何缓存ActiveRecord关系产生的查询所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。