xutongle 2016-10-20 17:30:50 4850次浏览 1条评论 10 2 0
use app\models\User;
use yii\data\Pagination;

$subQuery = User::find()->select('id')->where('id>0');
if (($count = Yii::$app->cache->get(__METHOD__) == false)) {
    $count = $subQuery->count();
    Yii::$app->cache->set(__METHOD__, $count, 3600);
}

$pagination = new Pagination(['totalCount' => $count]);

$subQuery->offset($pagination->offset)
    ->limit($pagination->limit);

$query = User::find()->select('*')->from(['t1' => User::tableName(), 't2' => $subQuery])->where('t1.id=t2.id');

$articles = $query->all();

print_r($articles);

相比上一次写的,缓存了count结果

觉得很赞
  • 评论于 2016-10-24 15:02 举报

    else呢,有缓存就不管了?

    3 条回复
    评论于 2016-10-27 14:41 回复

    简单写了些。。。

    评论于 2016-10-27 14:42 回复

    $subQuery作为缓存Key就可以了

    评论于 2017-05-12 09:46 回复

    靠,被你带到沟里了,今天翻帖子,明明不需要else,if成立 $count 就有结果,else个毛线啊

    , 觉得很赞
您需要登录后才可以评论。登录 | 立即注册